Resolve https://github.com/matthieugrieger/mumbledj/issues/158: Config values can now be overriden directly via commandline arguments
This commit is contained in:
parent
918c59317a
commit
a44bac5302
|
@ -1,6 +1,12 @@
|
|||
MumbleDJ Changelog
|
||||
==================
|
||||
|
||||
### June 25, 2016 -- `v3.0.7`
|
||||
* Volume can now be set to `volume.lowest` and `volume.highest` (in other words, the range is inclusive now instead of exclusive).
|
||||
* All configuration values can now be overriden via commandline arguments. For example: `mumbledj --admins.names="SuperUser,Matt" --volume.default="0.5" --commands.add.is_admin="false"`
|
||||
* __NOTE__: Configuration settings that contain commas (",") are interpreted as string slices (or arrays if you aren't familiar with Go).
|
||||
* Removed an extra period that was sometimes output in error messages.
|
||||
|
||||
### June 25, 2016 -- `v3.0.6`
|
||||
* Fixed an issue with `!forceskip` not stopping audio playback.
|
||||
|
||||
|
|
|
@ -136,6 +136,14 @@ GLOBAL OPTIONS:
|
|||
|
||||
```
|
||||
|
||||
__NOTE__: You can also override all settings found within `config.yaml` directly from the commandline. Here's an example:
|
||||
|
||||
```
|
||||
mumbledj --admins.names="SuperUser,Matt" --volume.default="0.5" --volume.lowest="0.2" --queue.automatic_shuffle_on="true"
|
||||
```
|
||||
|
||||
Keep in mind that values that contain commas (such as `"SuperUser,Matt"`) will be interpreted as string slices, or arrays if you are not familiar with Go. If you want your value to be interpreted as a normal string, it is best to avoid commas for now.
|
||||
|
||||
## Commands
|
||||
|
||||
### add
|
||||
|
|
22
main.go
22
main.go
|
@ -32,7 +32,7 @@ func init() {
|
|||
services.DJ = DJ
|
||||
bot.DJ = DJ
|
||||
|
||||
DJ.Version = "v3.0.6"
|
||||
DJ.Version = "v3.0.7"
|
||||
|
||||
logrus.SetLevel(logrus.WarnLevel)
|
||||
}
|
||||
|
@ -97,11 +97,31 @@ func main() {
|
|||
Usage: "if present, all debug messages will be shown",
|
||||
},
|
||||
}
|
||||
|
||||
hiddenFlags := make([]cli.Flag, len(viper.AllKeys()))
|
||||
for i, configValue := range viper.AllKeys() {
|
||||
hiddenFlags[i] = cli.StringFlag{
|
||||
Name: configValue,
|
||||
Hidden: true,
|
||||
}
|
||||
}
|
||||
app.Flags = append(app.Flags, hiddenFlags...)
|
||||
|
||||
app.Action = func(c *cli.Context) error {
|
||||
if c.Bool("debug") {
|
||||
logrus.SetLevel(logrus.InfoLevel)
|
||||
}
|
||||
|
||||
for _, configValue := range viper.AllKeys() {
|
||||
if c.GlobalIsSet(configValue) {
|
||||
if strings.Contains(c.String(configValue), ",") {
|
||||
viper.Set(configValue, strings.Split(c.String(configValue), ","))
|
||||
} else {
|
||||
viper.Set(configValue, c.String(configValue))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
viper.SetConfigFile(c.String("config"))
|
||||
if err := viper.ReadInConfig(); err != nil {
|
||||
logrus.WithFields(logrus.Fields{
|
||||
|
|
Reference in a new issue