refactor: remove all checkErr

pull/5286/head
Henrique Dias 2025-07-22 08:17:03 +02:00
parent d10ef0bd6e
commit 3959bbe3e6
No known key found for this signature in database
6 changed files with 81 additions and 77 deletions

View File

@ -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{}),
}

View File

@ -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/")

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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
}