Skip to content

Commit 0f1fe8f

Browse files
committed
use context
1 parent ff8ce65 commit 0f1fe8f

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

cmd/mysqlbatch/main.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
package main
22

33
import (
4+
"context"
45
"flag"
56
"fmt"
67
"log"
78
"os"
9+
"os/signal"
10+
"syscall"
811

912
"github.com/mashiike/mysqlbatch"
1013
)
@@ -37,9 +40,11 @@ func main() {
3740
if flag.NArg() == 1 {
3841
conf.Database = flag.Arg(0)
3942
}
43+
ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGTERM|syscall.SIGHUP|syscall.SIGINT)
44+
defer stop()
4045

4146
executer := mysqlbatch.New(conf)
42-
if err := executer.Execute(os.Stdin); err != nil {
47+
if err := executer.ExecuteContext(ctx, os.Stdin); err != nil {
4348
log.Println(err)
4449
os.Exit(1)
4550
}

executer.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package mysqlbatch
22

33
import (
44
"bufio"
5+
"context"
56
"database/sql"
67
"fmt"
78
"io"
@@ -53,6 +54,10 @@ func New(config *Config) *Executer {
5354
}
5455

5556
func (e *Executer) Execute(queryReader io.Reader) error {
57+
return e.ExecuteContext(context.Background(), queryReader)
58+
}
59+
60+
func (e *Executer) ExecuteContext(ctx context.Context, queryReader io.Reader) error {
5661

5762
db, err := sql.Open("mysql", e.dsn)
5863
if err != nil {
@@ -67,7 +72,7 @@ func (e *Executer) Execute(queryReader io.Reader) error {
6772
if query == "" {
6873
continue
6974
}
70-
if _, err := db.Exec(query); err != nil {
75+
if _, err := db.ExecContext(ctx, query); err != nil {
7176
return errors.Wrap(err, "execute query failed")
7277
}
7378
}

0 commit comments

Comments
 (0)