This repository has been archived by the owner on Apr 4, 2023. It is now read-only.
/
config_controller.go
78 lines (60 loc) · 1.75 KB
/
config_controller.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
69
70
71
72
73
74
75
76
77
78
package main
import (
"fmt"
"os"
)
func (c *Controller) SetConfigAccount(slug string) {
account, err := c.Api.GetAccount(slug)
if err != nil {
fmt.Println("Error accessing account:" + err.Error())
cliOSExit()
return
}
config := getConfig()
config.AccountSlug = account.Slug
if err := config.Save(); err != nil {
fmt.Println("Error setting default account: " + err.Error())
os.Exit(1)
}
fmt.Println("Set default account to " + account.Slug)
}
func requireAccount(api *Api) {
runCount := 0
for api.Config.AccountSlug == "" {
if runCount > 2 {
fmt.Println("Default account is required. Please run `mongohq accounts` and `mongohq config:account -a <account-slug>` to set a default acount.")
os.Exit(1)
}
accounts, err := api.GetAccounts()
if err != nil {
fmt.Println("Error returning list of accounts let's try one more time.")
runCount += 1
continue
}
var account Account
if len(accounts) > 1 {
fmt.Println("To continue, we need to set a default account. Here is a list of accounts you have access to:")
for _, account := range accounts {
fmt.Println(" " + account.Slug)
}
accountSlug := prompt("Which account should be default")
account, err = api.GetAccount(accountSlug)
if err != nil {
fmt.Println("Error accessing the account '" + accountSlug + "'. Please try again.")
runCount += 1
continue
}
} else {
account = accounts[0]
}
config := getConfig()
config.AccountSlug = account.Slug
err = config.Save()
api.Config = config
if err != nil {
fmt.Println("Error saving default configuartion to ~/.mongohq/defaults. Will you check the permissions on the file allow you to write?")
}
fmt.Println("Set default account to " + account.Slug + "\n")
return
}
}