File tree Expand file tree Collapse file tree 2 files changed +12
-2
lines changed
Expand file tree Collapse file tree 2 files changed +12
-2
lines changed Original file line number Diff line number Diff line change 11package main
22
33import (
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 }
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ package mysqlbatch
22
33import (
44 "bufio"
5+ "context"
56 "database/sql"
67 "fmt"
78 "io"
@@ -53,6 +54,10 @@ func New(config *Config) *Executer {
5354}
5455
5556func (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 }
You can’t perform that action at this time.
0 commit comments