Skip to content

Instantly share code, notes, and snippets.

@winston-wen
Created August 24, 2023 09:27
Show Gist options
  • Select an option

  • Save winston-wen/d94e5b4a4e717c2e489cfed13842c488 to your computer and use it in GitHub Desktop.

Select an option

Save winston-wen/d94e5b4a4e717c2e489cfed13842c488 to your computer and use it in GitHub Desktop.
Parse cmdargs in Golang.
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
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment