psu/cmd/configSet.go

56 lines
1.1 KiB
Go

package cmd
import (
"os"
"github.com/sirupsen/logrus"
"github.com/greenled/portainer-stack-utils/common"
"github.com/spf13/cobra"
)
// configSetCmd represents the config set command
var configSetCmd = &cobra.Command{
Use: "set KEY VALUE",
Short: "Set config",
Args: cobra.ExactArgs(2),
Run: func(cmd *cobra.Command, args []string) {
keyExists := common.CheckConfigKeyExists(args[0])
if !keyExists {
logrus.WithFields(logrus.Fields{
"key": args[0],
"suggestions": "Try looking up the available configuration keys: psu config ls",
}).Fatal("Unknown configuration key")
}
// Set config
configSettingErr := setConfig(args[0], args[1])
common.CheckError(configSettingErr)
},
}
func init() {
configCmd.AddCommand(configSetCmd)
}
func setConfig(key string, value string) (err error) {
newViper, err := common.LoadCofig()
if err != nil {
return
}
newViper.Set(key, value)
// Make sure the config file exists
_, err = os.Create(newViper.ConfigFileUsed())
if err != nil {
return
}
// Write te config file
err = newViper.WriteConfig()
return
}