@@ -15,6 +15,8 @@ import (
15
15
"github.com/github/gh-ost/go/base"
16
16
"github.com/github/gh-ost/go/logic"
17
17
"github.com/outbrain/golib/log"
18
+
19
+ "golang.org/x/crypto/ssh/terminal"
18
20
)
19
21
20
22
var AppVersion string
@@ -49,6 +51,7 @@ func main() {
49
51
flag .StringVar (& migrationContext .CliUser , "user" , "" , "MySQL user" )
50
52
flag .StringVar (& migrationContext .CliPassword , "password" , "" , "MySQL password" )
51
53
flag .StringVar (& migrationContext .ConfigFile , "conf" , "" , "Config file" )
54
+ askPass := flag .Bool ("ask-pass" , false , "prompt for MySQL password" )
52
55
53
56
flag .StringVar (& migrationContext .DatabaseName , "database" , "" , "database name (mandatory)" )
54
57
flag .StringVar (& migrationContext .OriginalTableName , "table" , "" , "table name (mandatory)" )
@@ -194,6 +197,14 @@ func main() {
194
197
if migrationContext .ServeSocketFile == "" {
195
198
migrationContext .ServeSocketFile = fmt .Sprintf ("/tmp/gh-ost.%s.%s.sock" , migrationContext .DatabaseName , migrationContext .OriginalTableName )
196
199
}
200
+ if * askPass {
201
+ fmt .Println ("Password:" )
202
+ bytePassword , err := terminal .ReadPassword (int (syscall .Stdin ))
203
+ if err != nil {
204
+ log .Fatale (err )
205
+ }
206
+ migrationContext .CliPassword = string (bytePassword )
207
+ }
197
208
migrationContext .SetHeartbeatIntervalMilliseconds (* heartbeatIntervalMillis )
198
209
migrationContext .SetNiceRatio (* niceRatio )
199
210
migrationContext .SetChunkSize (* chunkSize )
0 commit comments