fix: use server options from DB too (#616)

License: MIT
Signed-off-by: Henrique Dias <hacdias@gmail.com>
This commit is contained in:
Henrique Dias
2019-01-08 14:07:55 +00:00
committed by GitHub
parent 76bf72902d
commit 72069207c6
19 changed files with 270 additions and 179 deletions

View File

@@ -20,41 +20,61 @@ var configSetCmd = &cobra.Command{
you want to change.`,
Args: cobra.NoArgs,
Run: python(func(cmd *cobra.Command, args []string, d pythonData) {
s, err := d.store.Settings.Get()
flags := cmd.Flags()
set, err := d.store.Settings.Get()
checkErr(err)
ser, err := d.store.Settings.GetServer()
checkErr(err)
hasAuth := false
cmd.Flags().Visit(func(flag *pflag.Flag) {
flags.Visit(func(flag *pflag.Flag) {
switch flag.Name {
case "baseurl":
ser.BaseURL = mustGetString(flags, flag.Name)
case "root":
ser.Root = mustGetString(flags, flag.Name)
case "cert":
ser.TLSCert = mustGetString(flags, flag.Name)
case "key":
ser.TLSKey = mustGetString(flags, flag.Name)
case "address":
ser.Address = mustGetString(flags, flag.Name)
case "port":
ser.Port = mustGetString(flags, flag.Name)
case "log":
ser.Log = mustGetString(flags, flag.Name)
case "signup":
s.Signup = mustGetBool(cmd, flag.Name)
set.Signup = mustGetBool(flags, flag.Name)
case "auth.method":
hasAuth = true
case "shell":
s.Shell = strings.Split(strings.TrimSpace(mustGetString(cmd, flag.Name)), " ")
set.Shell = strings.Split(strings.TrimSpace(mustGetString(flags, flag.Name)), " ")
case "branding.name":
s.Branding.Name = mustGetString(cmd, flag.Name)
set.Branding.Name = mustGetString(flags, flag.Name)
case "branding.disableExternal":
s.Branding.DisableExternal = mustGetBool(cmd, flag.Name)
set.Branding.DisableExternal = mustGetBool(flags, flag.Name)
case "branding.files":
s.Branding.Files = mustGetString(cmd, flag.Name)
set.Branding.Files = mustGetString(flags, flag.Name)
}
})
getUserDefaults(cmd, &s.Defaults, false)
getUserDefaults(flags, &set.Defaults, false)
var auther auth.Auther
if hasAuth {
s.AuthMethod, auther = getAuthentication(cmd)
set.AuthMethod, auther = getAuthentication(flags)
err = d.store.Auth.Save(auther)
checkErr(err)
} else {
auther, err = d.store.Auth.Get(s.AuthMethod)
auther, err = d.store.Auth.Get(set.AuthMethod)
checkErr(err)
}
err = d.store.Settings.Save(s)
err = d.store.Settings.Save(set)
checkErr(err)
printSettings(s, auther)
err = d.store.Settings.SaveServer(ser)
checkErr(err)
printSettings(ser, set, auther)
}, pythonConfig{}),
}