feat: simplify flag adding

License: MIT
Signed-off-by: Henrique Dias <hacdias@gmail.com>
This commit is contained in:
Henrique Dias 2019-01-08 10:50:37 +00:00
parent 0e7abaa7fb
commit fc06f642f2
6 changed files with 33 additions and 32 deletions

View File

@ -12,6 +12,7 @@ import (
"github.com/filebrowser/filebrowser/v2/errors" "github.com/filebrowser/filebrowser/v2/errors"
"github.com/filebrowser/filebrowser/v2/settings" "github.com/filebrowser/filebrowser/v2/settings"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/spf13/pflag"
) )
func init() { func init() {
@ -25,21 +26,21 @@ var configCmd = &cobra.Command{
Args: cobra.NoArgs, Args: cobra.NoArgs,
} }
func addConfigFlags(cmd *cobra.Command) { func addConfigFlags(flags *pflag.FlagSet) {
addUserFlags(cmd) addUserFlags(flags)
cmd.Flags().BoolP("signup", "s", false, "allow users to signup") flags.BoolP("signup", "s", false, "allow users to signup")
cmd.Flags().String("shell", "", "shell command to which other commands should be appended") flags.String("shell", "", "shell command to which other commands should be appended")
cmd.Flags().String("auth.method", string(auth.MethodJSONAuth), "authentication type") flags.String("auth.method", string(auth.MethodJSONAuth), "authentication type")
cmd.Flags().String("auth.header", "", "HTTP header for auth.method=proxy") flags.String("auth.header", "", "HTTP header for auth.method=proxy")
cmd.Flags().String("recaptcha.host", "https://www.google.com", "use another host for ReCAPTCHA. recaptcha.net might be useful in China") flags.String("recaptcha.host", "https://www.google.com", "use another host for ReCAPTCHA. recaptcha.net might be useful in China")
cmd.Flags().String("recaptcha.key", "", "ReCaptcha site key") flags.String("recaptcha.key", "", "ReCaptcha site key")
cmd.Flags().String("recaptcha.secret", "", "ReCaptcha secret") flags.String("recaptcha.secret", "", "ReCaptcha secret")
cmd.Flags().String("branding.name", "", "replace 'File Browser' by this name") flags.String("branding.name", "", "replace 'File Browser' by this name")
cmd.Flags().String("branding.files", "", "path to directory with images and custom styles") flags.String("branding.files", "", "path to directory with images and custom styles")
cmd.Flags().Bool("branding.disableExternal", false, "disable external links such as GitHub links") flags.Bool("branding.disableExternal", false, "disable external links such as GitHub links")
} }
func getAuthentication(cmd *cobra.Command) (settings.AuthMethod, auth.Auther) { func getAuthentication(cmd *cobra.Command) (settings.AuthMethod, auth.Auther) {

View File

@ -10,7 +10,7 @@ import (
func init() { func init() {
configCmd.AddCommand(configInitCmd) configCmd.AddCommand(configInitCmd)
addConfigFlags(configInitCmd) addConfigFlags(configInitCmd.Flags())
} }
var configInitCmd = &cobra.Command{ var configInitCmd = &cobra.Command{

View File

@ -10,7 +10,7 @@ import (
func init() { func init() {
configCmd.AddCommand(configSetCmd) configCmd.AddCommand(configSetCmd)
addConfigFlags(configSetCmd) addConfigFlags(configSetCmd.Flags())
} }
var configSetCmd = &cobra.Command{ var configSetCmd = &cobra.Command{

View File

@ -58,22 +58,22 @@ func parseUsernameOrID(arg string) (string, uint) {
return "", uint(id) return "", uint(id)
} }
func addUserFlags(cmd *cobra.Command) { func addUserFlags(flags *pflag.FlagSet) {
cmd.Flags().Bool("perm.admin", false, "admin perm for users") flags.Bool("perm.admin", false, "admin perm for users")
cmd.Flags().Bool("perm.execute", true, "execute perm for users") flags.Bool("perm.execute", true, "execute perm for users")
cmd.Flags().Bool("perm.create", true, "create perm for users") flags.Bool("perm.create", true, "create perm for users")
cmd.Flags().Bool("perm.rename", true, "rename perm for users") flags.Bool("perm.rename", true, "rename perm for users")
cmd.Flags().Bool("perm.modify", true, "modify perm for users") flags.Bool("perm.modify", true, "modify perm for users")
cmd.Flags().Bool("perm.delete", true, "delete perm for users") flags.Bool("perm.delete", true, "delete perm for users")
cmd.Flags().Bool("perm.share", true, "share perm for users") flags.Bool("perm.share", true, "share perm for users")
cmd.Flags().Bool("perm.download", true, "download perm for users") flags.Bool("perm.download", true, "download perm for users")
cmd.Flags().String("sorting.by", "name", "sorting mode (name, size or modified)") flags.String("sorting.by", "name", "sorting mode (name, size or modified)")
cmd.Flags().Bool("sorting.asc", false, "sorting by ascending order") flags.Bool("sorting.asc", false, "sorting by ascending order")
cmd.Flags().Bool("lockPassword", false, "lock password") flags.Bool("lockPassword", false, "lock password")
cmd.Flags().StringSlice("commands", nil, "a list of the commands a user can execute") flags.StringSlice("commands", nil, "a list of the commands a user can execute")
cmd.Flags().String("scope", ".", "scope for users") flags.String("scope", ".", "scope for users")
cmd.Flags().String("locale", "en", "locale for users") flags.String("locale", "en", "locale for users")
cmd.Flags().String("viewMode", string(users.ListViewMode), "view mode for users") flags.String("viewMode", string(users.ListViewMode), "view mode for users")
} }
func getViewMode(cmd *cobra.Command) users.ViewMode { func getViewMode(cmd *cobra.Command) users.ViewMode {

View File

@ -7,7 +7,7 @@ import (
func init() { func init() {
usersCmd.AddCommand(usersAddCmd) usersCmd.AddCommand(usersAddCmd)
addUserFlags(usersAddCmd) addUserFlags(usersAddCmd.Flags())
} }
var usersAddCmd = &cobra.Command{ var usersAddCmd = &cobra.Command{

View File

@ -11,7 +11,7 @@ func init() {
usersUpdateCmd.Flags().StringP("password", "p", "", "new password") usersUpdateCmd.Flags().StringP("password", "p", "", "new password")
usersUpdateCmd.Flags().StringP("username", "u", "", "new username") usersUpdateCmd.Flags().StringP("username", "u", "", "new username")
addUserFlags(usersUpdateCmd) addUserFlags(usersUpdateCmd.Flags())
} }
var usersUpdateCmd = &cobra.Command{ var usersUpdateCmd = &cobra.Command{