nirvash/archetype/cmd.go

61 lines
1.1 KiB
Go
Raw Normal View History

package archetype
import (
2022-05-29 06:26:36 +00:00
"fmt"
"hacklab.nilfm.cc/quartzgun/auth"
2022-05-29 06:26:36 +00:00
"strings"
)
func ProcessCmd(args []string, userStore auth.UserStore, cfg *Config) bool {
2022-05-29 06:26:36 +00:00
if len(args) == 1 {
return false
}
switch args[1] {
case "adduser":
if len(args) < 4 {
return help()
}
userStore.AddUser(args[2], args[3])
case "rmuser":
if len(args) < 3 {
return help()
}
userStore.DeleteUser(args[2])
case "passwd":
if len(args) < 5 {
return help()
}
userStore.ChangePassword(args[2], args[3], args[4])
case "configure":
fmt.Printf("configuring\n")
for _, token := range args[2:] {
kvp := strings.Split(token, "=")
k := kvp[0]
v := kvp[1]
fmt.Printf("%s = %s\n", k, v)
switch k {
case "adapter":
cfg.SetAdapter(v)
2022-05-29 06:26:36 +00:00
case "root":
cfg.Root = v
case "assetRoot":
cfg.AssetRoot = v
case "staticRoot":
cfg.StaticRoot = v
case "plugins":
// handle plugins later
default:
panic("unknown configuration option: " + v)
}
}
cfg.Write()
2022-05-29 06:26:36 +00:00
default:
help()
}
return true
}
func help() bool {
2022-05-29 06:26:36 +00:00
return true
}