-
Notifications
You must be signed in to change notification settings - Fork 52
/
show.go
68 lines (54 loc) · 1.42 KB
/
show.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 org
import (
"errors"
"os"
"github.com/planetscale/cli/internal/cmdutil"
"github.com/planetscale/cli/internal/config"
"github.com/planetscale/cli/internal/printer"
"github.com/spf13/cobra"
)
func ShowCmd(ch *cmdutil.Helper) *cobra.Command {
cmd := &cobra.Command{
Use: "show",
Short: "Display the currently active organization",
Args: cobra.NoArgs,
RunE: func(cmd *cobra.Command, args []string) error {
configPath, err := config.ProjectConfigPath()
if err != nil {
return err
}
cfg, err := ch.ConfigFS.NewFileConfig(configPath)
if os.IsNotExist(err) {
configPath, err = config.DefaultConfigPath()
if err != nil {
return err
}
cfg, err = ch.ConfigFS.NewFileConfig(configPath)
if os.IsNotExist(err) {
return errors.New(cmdutil.WarnAuthMessage)
}
if err != nil {
return err
}
}
if err != nil {
return err
}
if cfg.Organization == "" {
return errors.New("config file exists, but organization is not set")
}
if ch.Printer.Format() == printer.Human {
ch.Printer.Printf("%s (from file: %s)\n", printer.Bold(cfg.Organization), configPath)
return nil
}
if ch.Printer.Format() == printer.CSV {
res := []struct {
Org string `json:"org"`
}{{Org: cfg.Organization}}
return ch.Printer.PrintResource(res)
}
return ch.Printer.PrintResource(map[string]string{"org": cfg.Organization})
},
}
return cmd
}