package cmd import ( "strings" "github.com/filebrowser/filebrowser/v2/auth" "github.com/spf13/cobra" "github.com/spf13/pflag" ) func init() { configCmd.AddCommand(configSetCmd) addConfigFlags(configSetCmd) } var configSetCmd = &cobra.Command{ Use: "set", Short: "Updates the configuration", Long: `Updates the configuration. Set the flags for the options you want to change.`, Args: cobra.NoArgs, Run: func(cmd *cobra.Command, args []string) { db := getDB() defer db.Close() st := getStorage(db) s, err := st.Settings.Get() checkErr(err) hasAuth := false cmd.Flags().Visit(func(flag *pflag.Flag) { switch flag.Name { case "signup": s.Signup = mustGetBool(cmd, flag.Name) case "auth.method": hasAuth = true case "shell": s.Shell = strings.Split(strings.TrimSpace(mustGetString(cmd, flag.Name)), " ") case "branding.name": s.Branding.Name = mustGetString(cmd, flag.Name) case "branding.disableExternal": s.Branding.DisableExternal = mustGetBool(cmd, flag.Name) case "branding.files": s.Branding.Files = mustGetString(cmd, flag.Name) } }) getUserDefaults(cmd, &s.Defaults, false) var auther auth.Auther if hasAuth { s.AuthMethod, auther = getAuthentication(cmd) err = st.Auth.Save(auther) checkErr(err) } else { auther, err = st.Auth.Get(s.AuthMethod) checkErr(err) } err = st.Settings.Save(s) checkErr(err) printSettings(s, auther) }, }