-
Notifications
You must be signed in to change notification settings - Fork 0
/
cmd_add.go
68 lines (57 loc) · 1.18 KB
/
cmd_add.go
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
62
63
64
65
66
67
68
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"os"
"github.com/urfave/cli"
"gopkg.in/AlecAivazis/survey.v1"
)
func cmdAdd(c *cli.Context) {
if !isInitialize() {
fmt.Println("You need to initialize.")
fmt.Println("Please execute the following command.")
fmt.Println("")
fmt.Println(" mgu init")
fmt.Println("")
return
}
var qs = []*survey.Question{
{
Name: "name",
Prompt: &survey.Input{Message: "user.name"},
},
{
Name: "email",
Prompt: &survey.Input{Message: "user.email"},
},
}
answers := struct {
Name string
Email string
}{}
err := survey.Ask(qs, &answers)
if err != nil {
fmt.Println(err.Error())
return
}
user := User{
Name: answers.Name,
Email: answers.Email,
}
raw, err := ioutil.ReadFile(appConfigFilePath)
if err != nil {
fmt.Println("You need to initialize.")
fmt.Println("Please execute the following command.")
fmt.Println("")
fmt.Println(" mugu init")
fmt.Println("")
return
}
var uc []User
json.Unmarshal(raw, &uc)
uc = append(uc, user)
bytes, _ := json.Marshal(&uc)
ioutil.WriteFile(appConfigFilePath, bytes, os.ModePerm)
fmt.Println(user.Name + " <" + user.Email + "> is added.")
}