Skip to content

Instantly share code, notes, and snippets.

@winston-wen
Created August 24, 2023 09:27
Show Gist options
  • Save winston-wen/d94e5b4a4e717c2e489cfed13842c488 to your computer and use it in GitHub Desktop.
Save winston-wen/d94e5b4a4e717c2e489cfed13842c488 to your computer and use it in GitHub Desktop.

Revisions

  1. winston-wen created this gist Aug 24, 2023.
    21 changes: 21 additions & 0 deletions argparse.go
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,21 @@
    import (
    "github.com/akamensky/argparse"
    )

    func main() {
    parser := argparse.NewParser("my2go", "Generate GORM models from MySQL database")

    // register arguments
    host := parser.String("n", "host", &argparse.Options{Required: false, Help: "MySQL host", Default: "localhost"})
    port := parser.Int("p", "port", &argparse.Options{Required: false, Help: "MySQL port", Default: 3306})
    database := parser.String("d", "database", &argparse.Options{Required: false, Help: "MySQL database (schema)", Default: "demo"})
    user := parser.String("u", "user", &argparse.Options{Required: true, Help: "MySQL username"})
    out := parser.String("o", "out", &argparse.Options{Required: false, Help: "Directory of generated .go files", Default: "gormgen"})
    err := parser.Parse(os.Args)
    if err != nil {
    // In case of error print error and print usage
    // This can also be done by passing -h or --help flags
    fmt.Print(parser.Usage(err))
    return
    }
    }