feat: cleanup cli

License: MIT
Signed-off-by: Henrique Dias <hacdias@gmail.com>

Former-commit-id: 2923c251335301f361098890bf67d47cd58c0f86 [formerly 277653e21c4b9077ea3b83c149f0c5b2982b694f] [formerly 7481557b6f47c8de6499f3ee7339ea8d29216700 [formerly 999c69de5c96a3ea42c22b88e3ae016f0cfd6f52]]
Former-commit-id: 65eaacb4aee11f84c9f97ca2834def045921202a [formerly 7c9260a1fe142258dd0ac02c4710b03badd66d76]
Former-commit-id: ff3f3d7189b2e8cc2f00bef581cba108780e4552
This commit is contained in:
Henrique Dias
2019-01-06 13:21:31 +00:00
parent e5c150e83f
commit 42134a4849
15 changed files with 176 additions and 132 deletions

View File

@@ -1,7 +1,6 @@
package cmd
import (
"errors"
"regexp"
"github.com/filebrowser/filebrowser/v2/rules"
@@ -13,41 +12,33 @@ import (
func init() {
rulesCmd.AddCommand(rulesAddCmd)
rulesAddCmd.Flags().BoolP("allow", "a", false, "allow rule instead of disallow")
rulesAddCmd.Flags().StringP("path", "p", "", "path to which the rule applies")
rulesAddCmd.Flags().StringP("regex", "r", "", "regex to which the rule applies")
rulesAddCmd.Flags().BoolP("allow", "a", false, "indicates this is an allow rule")
rulesAddCmd.Flags().BoolP("regex", "r", false, "indicates this is a regex rule")
}
var rulesAddCmd = &cobra.Command{
Use: "add",
Use: "add <path|expression>",
Short: "Add a global rule or user rule",
Long: `Add a global rule or user rule. You must
set either path or regex.`,
Args: cobra.NoArgs,
Long: `Add a global rule or user rule.`,
Args: cobra.ExactArgs(1),
Run: func(cmd *cobra.Command, args []string) {
allow := mustGetBool(cmd, "allow")
path := mustGetString(cmd, "path")
regex := mustGetString(cmd, "regex")
regex := mustGetBool(cmd, "regex")
exp := args[0]
if path == "" && regex == "" {
panic(errors.New("you must set either --path or --regex flags"))
}
if path != "" && regex != "" {
panic(errors.New("you can't set --path and --regex flags at the same time"))
}
if regex != "" {
regexp.MustCompile(regex)
if regex {
regexp.MustCompile(exp)
}
rule := rules.Rule{
Allow: allow,
Path: path,
Regex: regex != "",
Regexp: &rules.Regexp{
Raw: regex,
},
Regex: regex,
}
if regex {
rule.Regexp = &rules.Regexp{Raw: exp}
} else {
rule.Path = exp
}
user := func(u *users.User, st *storage.Storage) {