refactor: remove all checkErr
parent
d10ef0bd6e
commit
3959bbe3e6
|
@ -29,66 +29,60 @@ you want to change. Other options will remain unchanged.`,
|
|||
}
|
||||
|
||||
hasAuth := false
|
||||
var visitErr error
|
||||
flags.Visit(func(flag *pflag.Flag) {
|
||||
if visitErr != nil {
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
var configSetErr error
|
||||
switch flag.Name {
|
||||
case "baseurl":
|
||||
ser.BaseURL, configSetErr = mustGetString(flags, flag.Name)
|
||||
ser.BaseURL, err = mustGetString(flags, flag.Name)
|
||||
case "root":
|
||||
ser.Root, configSetErr = mustGetString(flags, flag.Name)
|
||||
ser.Root, err = mustGetString(flags, flag.Name)
|
||||
case "socket":
|
||||
ser.Socket, configSetErr = mustGetString(flags, flag.Name)
|
||||
ser.Socket, err = mustGetString(flags, flag.Name)
|
||||
case "cert":
|
||||
ser.TLSCert, configSetErr = mustGetString(flags, flag.Name)
|
||||
ser.TLSCert, err = mustGetString(flags, flag.Name)
|
||||
case "key":
|
||||
ser.TLSKey, configSetErr = mustGetString(flags, flag.Name)
|
||||
ser.TLSKey, err = mustGetString(flags, flag.Name)
|
||||
case "address":
|
||||
ser.Address, configSetErr = mustGetString(flags, flag.Name)
|
||||
ser.Address, err = mustGetString(flags, flag.Name)
|
||||
case "port":
|
||||
ser.Port, configSetErr = mustGetString(flags, flag.Name)
|
||||
ser.Port, err = mustGetString(flags, flag.Name)
|
||||
case "log":
|
||||
ser.Log, configSetErr = mustGetString(flags, flag.Name)
|
||||
ser.Log, err = mustGetString(flags, flag.Name)
|
||||
case "signup":
|
||||
set.Signup, configSetErr = mustGetBool(flags, flag.Name)
|
||||
set.Signup, err = mustGetBool(flags, flag.Name)
|
||||
case "auth.method":
|
||||
hasAuth = true
|
||||
case "shell":
|
||||
var shell string
|
||||
shell, configSetErr = mustGetString(flags, flag.Name)
|
||||
shell, err = mustGetString(flags, flag.Name)
|
||||
set.Shell = convertCmdStrToCmdArray(shell)
|
||||
case "create-user-dir":
|
||||
set.CreateUserDir, configSetErr = mustGetBool(flags, flag.Name)
|
||||
set.CreateUserDir, err = mustGetBool(flags, flag.Name)
|
||||
case "minimum-password-length":
|
||||
set.MinimumPasswordLength, configSetErr = mustGetUint(flags, flag.Name)
|
||||
set.MinimumPasswordLength, err = mustGetUint(flags, flag.Name)
|
||||
case "branding.name":
|
||||
set.Branding.Name, configSetErr = mustGetString(flags, flag.Name)
|
||||
set.Branding.Name, err = mustGetString(flags, flag.Name)
|
||||
case "branding.color":
|
||||
set.Branding.Color, configSetErr = mustGetString(flags, flag.Name)
|
||||
set.Branding.Color, err = mustGetString(flags, flag.Name)
|
||||
case "branding.theme":
|
||||
set.Branding.Theme, configSetErr = mustGetString(flags, flag.Name)
|
||||
set.Branding.Theme, err = mustGetString(flags, flag.Name)
|
||||
case "branding.disableExternal":
|
||||
set.Branding.DisableExternal, configSetErr = mustGetBool(flags, flag.Name)
|
||||
set.Branding.DisableExternal, err = mustGetBool(flags, flag.Name)
|
||||
case "branding.disableUsedPercentage":
|
||||
set.Branding.DisableUsedPercentage, configSetErr = mustGetBool(flags, flag.Name)
|
||||
set.Branding.DisableUsedPercentage, err = mustGetBool(flags, flag.Name)
|
||||
case "branding.files":
|
||||
set.Branding.Files, configSetErr = mustGetString(flags, flag.Name)
|
||||
set.Branding.Files, err = mustGetString(flags, flag.Name)
|
||||
case "file-mode":
|
||||
set.FileMode, configSetErr = mustGetMode(flags, flag.Name)
|
||||
set.FileMode, err = mustGetMode(flags, flag.Name)
|
||||
case "dir-mode":
|
||||
set.DirMode, configSetErr = mustGetMode(flags, flag.Name)
|
||||
}
|
||||
|
||||
if configSetErr != nil {
|
||||
visitErr = configSetErr
|
||||
set.DirMode, err = mustGetMode(flags, flag.Name)
|
||||
}
|
||||
})
|
||||
|
||||
if visitErr != nil {
|
||||
return visitErr
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = getUserDefaults(flags, &set.Defaults, false)
|
||||
|
@ -120,6 +114,7 @@ you want to change. Other options will remain unchanged.`,
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return printSettings(ser, set, auther)
|
||||
}, pythonConfig{}),
|
||||
}
|
||||
|
|
49
cmd/root.go
49
cmd/root.go
|
@ -119,7 +119,10 @@ user created with the credentials from options "username" and "password".`,
|
|||
log.Println(cfgFile)
|
||||
|
||||
if !d.hadDB {
|
||||
quickSetup(cmd.Flags(), *d)
|
||||
err := quickSetup(cmd.Flags(), *d)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
// build img service
|
||||
|
@ -144,7 +147,10 @@ user created with the credentials from options "username" and "password".`,
|
|||
fileCache = diskcache.New(afero.NewOsFs(), cacheDir)
|
||||
}
|
||||
|
||||
server := getRunParams(cmd.Flags(), d.store)
|
||||
server, err := getRunParams(cmd.Flags(), d.store)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
setupLog(server.Log)
|
||||
|
||||
root, err := filepath.Abs(server.Root)
|
||||
|
@ -251,9 +257,11 @@ user created with the credentials from options "username" and "password".`,
|
|||
}
|
||||
|
||||
//nolint:gocyclo
|
||||
func getRunParams(flags *pflag.FlagSet, st *storage.Storage) *settings.Server {
|
||||
func getRunParams(flags *pflag.FlagSet, st *storage.Storage) (*settings.Server, error) {
|
||||
server, err := st.Settings.GetServer()
|
||||
checkErr(err)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if val, set := getStringParamB(flags, "root"); set {
|
||||
server.Root = val
|
||||
|
@ -296,7 +304,7 @@ func getRunParams(flags *pflag.FlagSet, st *storage.Storage) *settings.Server {
|
|||
}
|
||||
|
||||
if isAddrSet && isSocketSet {
|
||||
checkErr(errors.New("--socket flag cannot be used with --address, --port, --key nor --cert"))
|
||||
return nil, errors.New("--socket flag cannot be used with --address, --port, --key nor --cert")
|
||||
}
|
||||
|
||||
// Do not use saved Socket if address was manually set.
|
||||
|
@ -327,7 +335,7 @@ func getRunParams(flags *pflag.FlagSet, st *storage.Storage) *settings.Server {
|
|||
server.TokenExpirationTime = val
|
||||
}
|
||||
|
||||
return server
|
||||
return server, nil
|
||||
}
|
||||
|
||||
// getBoolParamB returns a parameter as a string and a boolean to tell if it is different from the default
|
||||
|
@ -406,7 +414,7 @@ func setupLog(logMethod string) {
|
|||
}
|
||||
}
|
||||
|
||||
func quickSetup(flags *pflag.FlagSet, d pythonData) {
|
||||
func quickSetup(flags *pflag.FlagSet, d pythonData) error {
|
||||
log.Println("Performing quick setup")
|
||||
|
||||
set := &settings.Settings{
|
||||
|
@ -449,10 +457,14 @@ func quickSetup(flags *pflag.FlagSet, d pythonData) {
|
|||
set.AuthMethod = auth.MethodJSONAuth
|
||||
err = d.store.Auth.Save(&auth.JSONAuth{})
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
checkErr(err)
|
||||
err = d.store.Settings.Save(set)
|
||||
checkErr(err)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
ser := &settings.Server{
|
||||
BaseURL: getStringParam(flags, "baseurl"),
|
||||
|
@ -465,7 +477,9 @@ func quickSetup(flags *pflag.FlagSet, d pythonData) {
|
|||
}
|
||||
|
||||
err = d.store.Settings.SaveServer(ser)
|
||||
checkErr(err)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
username := getStringParam(flags, "username")
|
||||
password := getStringParam(flags, "password")
|
||||
|
@ -473,11 +487,15 @@ func quickSetup(flags *pflag.FlagSet, d pythonData) {
|
|||
if password == "" {
|
||||
var pwd string
|
||||
pwd, err = users.RandomPwd(set.MinimumPasswordLength)
|
||||
checkErr(err)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
log.Printf("User '%s' initialized with randomly generated password: %s\n", username, pwd)
|
||||
password, err = users.ValidateAndHashPwd(pwd, set.MinimumPasswordLength)
|
||||
checkErr(err)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
log.Printf("User '%s' initialize wth user-provided password\n", username)
|
||||
}
|
||||
|
@ -495,14 +513,15 @@ func quickSetup(flags *pflag.FlagSet, d pythonData) {
|
|||
set.Defaults.Apply(user)
|
||||
user.Perm.Admin = true
|
||||
|
||||
err = d.store.Users.Save(user)
|
||||
checkErr(err)
|
||||
return d.store.Users.Save(user)
|
||||
}
|
||||
|
||||
func initConfig() {
|
||||
if cfgFile == "" {
|
||||
home, err := homedir.Dir()
|
||||
checkErr(err)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
v.AddConfigPath(".")
|
||||
v.AddConfigPath(home)
|
||||
v.AddConfigPath("/etc/filebrowser/")
|
||||
|
|
|
@ -53,20 +53,14 @@ including 'index_end'.`,
|
|||
}
|
||||
}
|
||||
|
||||
user := func(u *users.User) {
|
||||
user := func(u *users.User) error {
|
||||
u.Rules = append(u.Rules[:i], u.Rules[f+1:]...)
|
||||
err := d.store.Users.Save(u)
|
||||
if err != nil {
|
||||
checkErr(err)
|
||||
}
|
||||
return d.store.Users.Save(u)
|
||||
}
|
||||
|
||||
global := func(s *settings.Settings) {
|
||||
global := func(s *settings.Settings) error {
|
||||
s.Rules = append(s.Rules[:i], s.Rules[f+1:]...)
|
||||
err := d.store.Settings.Save(s)
|
||||
if err != nil {
|
||||
checkErr(err)
|
||||
}
|
||||
return d.store.Settings.Save(s)
|
||||
}
|
||||
|
||||
return runRules(d.store, cmd, user, global)
|
||||
|
|
18
cmd/rules.go
18
cmd/rules.go
|
@ -29,19 +29,22 @@ rules.`,
|
|||
Args: cobra.NoArgs,
|
||||
}
|
||||
|
||||
func runRules(st *storage.Storage, cmd *cobra.Command, usersFn func(*users.User), globalFn func(*settings.Settings)) error {
|
||||
func runRules(st *storage.Storage, cmd *cobra.Command, usersFn func(*users.User) error, globalFn func(*settings.Settings) error) error {
|
||||
id, err := getUserIdentifier(cmd.Flags())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if id != nil {
|
||||
user, usrErr := st.Users.Get("", id)
|
||||
if usrErr != nil {
|
||||
return usrErr
|
||||
user, err := st.Users.Get("", id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if usersFn != nil {
|
||||
usersFn(user)
|
||||
err = usersFn(user)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
printRules(user.Rules, id)
|
||||
|
@ -54,7 +57,10 @@ func runRules(st *storage.Storage, cmd *cobra.Command, usersFn func(*users.User)
|
|||
}
|
||||
|
||||
if globalFn != nil {
|
||||
globalFn(s)
|
||||
err = globalFn(s)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
printRules(s.Rules, id)
|
||||
|
|
|
@ -47,20 +47,14 @@ var rulesAddCmd = &cobra.Command{
|
|||
rule.Path = exp
|
||||
}
|
||||
|
||||
user := func(u *users.User) {
|
||||
user := func(u *users.User) error {
|
||||
u.Rules = append(u.Rules, rule)
|
||||
err := d.store.Users.Save(u)
|
||||
if err != nil {
|
||||
checkErr(err)
|
||||
}
|
||||
return d.store.Users.Save(u)
|
||||
}
|
||||
|
||||
global := func(s *settings.Settings) {
|
||||
global := func(s *settings.Settings) error {
|
||||
s.Rules = append(s.Rules, rule)
|
||||
err := d.store.Settings.Save(s)
|
||||
if err != nil {
|
||||
checkErr(err)
|
||||
}
|
||||
return d.store.Settings.Save(s)
|
||||
}
|
||||
|
||||
return runRules(d.store, cmd, user, global)
|
||||
|
|
10
cmd/utils.go
10
cmd/utils.go
|
@ -23,12 +23,6 @@ import (
|
|||
|
||||
const dbPerms = 0640
|
||||
|
||||
func checkErr(err error) {
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func returnErr(err error) error {
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -65,7 +59,9 @@ func mustGetUint(flags *pflag.FlagSet, flag string) (uint, error) {
|
|||
|
||||
func generateKey() []byte {
|
||||
k, err := settings.GenerateKey()
|
||||
checkErr(err)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return k
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue