Merge pull request #125 from pressly/fix_goose_panic

clean up arg parsing a bit
pull/126/head v2.4.2
Vojtech Vitek 2018-11-13 15:14:00 -05:00 committed by GitHub
commit 82b1074b4c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 29 additions and 25 deletions

View File

@ -19,28 +19,24 @@ func main() {
flags.Parse(os.Args[1:])
args := flags.Args()
if len(args) > 1 && args[0] == "create" {
if err := goose.Run("create", nil, *dir, args[1:]...); err != nil {
log.Fatalf("goose run: %v", err)
}
return
}
// TODO clean up arg/flag parsing flow
if args[0] == "fix" {
if err := goose.Run("fix", nil, *dir); err != nil {
log.Fatalf("goose run: %v", err)
}
return
}
if len(args) < 3 {
if len(args) == 0 || args[0] == "-h" || args[0] == "--help" {
flags.Usage()
return
}
if args[0] == "-h" || args[0] == "--help" {
switch args[0] {
case "create":
if err := goose.Run("create", nil, *dir, args[1:]...); err != nil {
log.Fatalf("goose run: %v", err)
}
return
case "fix":
if err := goose.Run("fix", nil, *dir); err != nil {
log.Fatalf("goose run: %v", err)
}
}
if len(args) < 3 {
flags.Usage()
return
}

View File

@ -25,20 +25,21 @@ func main() {
flags.Parse(os.Args[1:])
args := flags.Args()
if len(args) == 0 || args[0] == "-h" || args[0] == "--help" {
flags.Usage()
return
}
if len(args) > 1 && args[0] == "create" {
switch args[0] {
case "create":
if err := goose.Run("create", nil, *dir, args[1:]...); err != nil {
log.Fatalf("goose run: %v", err)
}
return
}
// TODO clean up arg/flag parsing flow
if args[0] == "fix" {
case "fix":
if err := goose.Run("fix", nil, *dir); err != nil {
log.Fatalf("goose run: %v", err)
}
return
}
if len(args) < 3 {

View File

@ -16,11 +16,18 @@ func TestDefaultBinary(t *testing.T) {
"./bin/goose -dir=examples/sql-migrations sqlite3 sql.db version",
"./bin/goose -dir=examples/sql-migrations sqlite3 sql.db down",
"./bin/goose -dir=examples/sql-migrations sqlite3 sql.db status",
"./bin/goose",
}
for _, cmd := range commands {
args := strings.Split(cmd, " ")
out, err := exec.Command(args[0], args[1:]...).CombinedOutput()
command := args[0]
var params []string
if len(args) > 1 {
params = args[1:]
}
out, err := exec.Command(command, params...).CombinedOutput()
if err != nil {
t.Fatalf("%s:\n%v\n\n%s", err, cmd, out)
}