https://github.com/travisjeffery/fang
Remove boilerplate using spf13/cobra with spf13/viper.
https://github.com/travisjeffery/fang
Last synced: 9 months ago
JSON representation
Remove boilerplate using spf13/cobra with spf13/viper.
- Host: GitHub
- URL: https://github.com/travisjeffery/fang
- Owner: travisjeffery
- Created: 2018-05-08T16:00:49.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-05-11T19:08:55.000Z (over 7 years ago)
- Last Synced: 2025-04-15T00:08:02.763Z (9 months ago)
- Language: Go
- Homepage: https://twitter.com/travisjeffery
- Size: 6.84 KB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Fang
Fangs removes boilerplate using github.com/spf13/cobra with github.com/spf13/viper.
## Example
Before:
``` go
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:
``` go
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
---
- [travisjeffery.com](http://travisjeffery.com)
- GitHub [@travisjeffery](https://github.com/travisjeffery)
- Twitter [@travisjeffery](https://twitter.com/travisjeffery)
- Medium [@travisjeffery](https://medium.com/@travisjeffery)