fang

Remove boilerplate using spf13/cobra with spf13/viper.

Stars
6
Committers
1

Fang

Fangs removes boilerplate using github.com/spf13/cobra with github.com/spf13/viper.

Example

Before:

cli.Flags().String("db-host", "", "Database host")
cli.Flags().String("db-user", "", "Database user")
cli.Flags().String("db-pass", "", "Database password.")

if err := viper.BindPFlag("db-host", cli.Flags().Lookup("db-host")); err != nil {
    panic(err)
}
if err := viper.BindEnv("db-user", "DB_USER"); err != nil {
    panic(err)
}
if err := viper.BindPFlag("db-pass", cli.Flags().Lookup("db-pass")); err != nil {
    panic(err)
}
if err := viper.BindEnv("db-pass", "DB_PASS"); err != nil {
    panic(err)
}

After:

f := cli.Flags()
fang.F(f).
    Flag(f.String, "db-host", "", "Database host").
    Env(f.String, "DB_USER", "db-user", "", "Database user").
    Env(f.String, "DB_PASS", db-pass", "", "Database password")

License

MIT