all repos — nirvash @ ab1b85079f8e834ce9426b128b9adf72c157448f

modular CMS using the quartzgun library

archetype/cmd.go (raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package archetype

import (
	"fmt"
	"nilfm.cc/git/quartzgun/auth"
	"strings"
)

func ProcessCmd(args []string, userStore auth.UserStore, cfg *Config) bool {
	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)
			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()
	default:
		help()
	}
	return true
}

func help() bool {
	return true
}