all repos — nirvash @ b7e2dc3ab7463cc239093623befde3901dcacec7

modular CMS using the quartzgun library

cmd/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
61
package cmd

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

func Process(args []string, userStore auth.UserStore, cfg *config.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":
          config.SetAdapter(cfg, 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)
        }
      }
      config.Write(cfg)
    default:
      help()
  }
  return true
}

func help() bool {
  return true
}