Categorygithub.com/alileza/cliutil
modulepackage
0.1.0
Repository: https://github.com/alileza/cliutil.git
Documentation: pkg.go.dev

# README

cliutil

github.com/urfave/cli utilities function, to simplify cli app development

Example

Generate Flags

var config struct {
    NodeID           string `default:"ulala"`
    LogLevel         string `usage:"just to see logs"`
    ListenAddress    string
    AdvertiseAddress string
    MigrationPath    string
    DatabaseDSN      string
    Test             int64
    SkipMigration    time.Duration
}

app := cli.NewApp()

flags, err := cliutil.GenerateFlags(&config)
if err != nil {
    t.Fatalf("cliutil: %v", err)
}
app.Flags = flags

app.Action = func(ctx *cli.Context) error {
    return cli.ShowAppHelp(ctx)
}
app.Run(os.Args)

and you simply got all flags set-up from just passing struct to generate flags

GLOBAL OPTIONS:
   --node-id value            cliutil: tag usage is not set (default: "ulala") [$NODE_ID]
   --log-level value          just to see logs [$LOG_LEVEL]
   --listen-address value     cliutil: tag usage is not set [$LISTEN_ADDRESS]
   --advertise-address value  cliutil: tag usage is not set [$ADVERTISE_ADDRESS]
   --migration-path value     cliutil: tag usage is not set [$MIGRATION_PATH]
   --database-dsn value       cliutil: tag usage is not set [$DATABASE_DSN]
   --test value               cliutil: tag usage is not set (default: 0) [$TEST]
   --skip-migration value     cliutil: tag usage is not set (default: 1s) [$SKIP_MIGRATION]
   --help, -h                 show help
   --version, -v              print the version

Available struct tag

TagDescription
flagFlag name
envEnvironment variable name
usageSet usage description
defaultSet default flag value
hiddenHide flag from help

# Functions

No description provided by the author
No description provided by the author