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