|
4 | 4 | "context" |
5 | 5 | "fmt" |
6 | 6 | "go/build" |
7 | | - "io/fs" |
8 | 7 | "net/url" |
9 | 8 | "os" |
10 | 9 | "regexp" |
@@ -49,89 +48,6 @@ func VersionString() string { |
49 | 48 | return fmt.Sprintf("%s (%s/%s) Commit: %s BuildDate: %s", Version.Version, Version.Os, Version.Arch, Version.Commit, Version.Date) |
50 | 49 | } |
51 | 50 |
|
52 | | -type Config struct { |
53 | | - JSON bool `desc:"Only print JSON output to STDOUT." flag:"json,j" env:"JSON_OUTPUT" toml:"json-output"` |
54 | | - NonInteractive bool `desc:"Run without ever asking for user input." flag:"non-interactive,n" env:"NON_INTERACTIVE" toml:"non-interactive"` |
55 | | - Verbose bool `desc:"Verbose output." flag:"verbose,v" env:"VERBOSE" toml:"verbose"` |
56 | | - |
57 | | - AnchorURL string `default:"https://anchor.dev" desc:"TODO" flag:"host" env:"ANCHOR_HOST" toml:"anchor-host"` |
58 | | - |
59 | | - API struct { |
60 | | - URL string `default:"https://api.anchor.dev/v0" desc:"Anchor API endpoint URL." flag:"api-url,u" env:"API_URL" json:"api_url" toml:"api-url"` |
61 | | - Token string `desc:"Anchor API personal access token (PAT)." flag:"api-token,t" env:"API_TOKEN" json:"api_token" toml:"token"` |
62 | | - } |
63 | | - |
64 | | - Lcl struct { |
65 | | - Service string `desc:"Name for lcl.host diagnostic service." flag:"service" env:"SERVICE" json:"service" toml:"service"` |
66 | | - Subdomain string `desc:"Subdomain for lcl.host diagnostic service." flag:"subdomain" env:"SUBDOMAIN" json:"subdomain" toml:"subdomain"` |
67 | | - |
68 | | - DiagnosticAddr string `default:":4433" desc:"Local server address" flag:"addr,a" env:"ADDR" json:"address" toml:"address"` |
69 | | - LclHostURL string `default:"https://lcl.host" env:"LCL_HOST_URL"` |
70 | | - |
71 | | - Audit struct { |
72 | | - } `cmd:"audit"` |
73 | | - |
74 | | - Clean struct { |
75 | | - } `cmd:"clean"` |
76 | | - |
77 | | - Config struct { |
78 | | - } `cmd:"config"` |
79 | | - |
80 | | - MkCert struct { |
81 | | - Domains []string `flag:"domains"` |
82 | | - SubCa string `flag:"subca"` |
83 | | - } `cmd:"mkcert"` |
84 | | - |
85 | | - Setup struct { |
86 | | - Language string `desc:"Language to use for integrating Anchor." flag:"language" json:"language" toml:"language"` |
87 | | - } `cmd:"setup"` |
88 | | - } `cmd:"lcl"` |
89 | | - |
90 | | - Test struct { |
91 | | - Browserless bool `desc:"run as though browserless"` |
92 | | - SkipRunE bool `desc:"skip RunE for testing purposes"` |
93 | | - } |
94 | | - |
95 | | - Trust struct { |
96 | | - Org string `desc:"organization" flag:"org,o" env:"ORG" json:"org" toml:"org"` |
97 | | - Realm string `desc:"realm" flag:"realm,r" env:"REALM" json:"realm" toml:"realm"` |
98 | | - |
99 | | - NoSudo bool `desc:"Disable sudo prompts." flag:"no-sudo" env:"NO_SUDO" toml:"no-sudo"` |
100 | | - |
101 | | - MockMode bool `env:"ANCHOR_CLI_TRUSTSTORE_MOCK_MODE"` |
102 | | - |
103 | | - Stores []string `default:"[system,nss,homebrew]" desc:"trust stores" flag:"trust-stores" env:"TRUST_STORES" toml:"trust-stores"` |
104 | | - |
105 | | - Audit struct{} `cmd:"audit"` |
106 | | - |
107 | | - Clean struct { |
108 | | - States []string `default:"[expired]" desc:"cert state(s)" flag:"cert-states" env:"CERT_STATES" toml:"cert-states"` |
109 | | - } `cmd:"clean"` |
110 | | - } `cmd:"trust"` |
111 | | - |
112 | | - User struct { |
113 | | - Auth struct { |
114 | | - SignIn struct{} `cmd:"signin"` |
115 | | - |
116 | | - SignOut struct{} `cmd:"signout"` |
117 | | - |
118 | | - WhoAmI struct{} `cmd:"whoami"` |
119 | | - } `cmd:"auth"` |
120 | | - } `group:"user,user management" toml:"user"` |
121 | | - |
122 | | - Keyring struct { |
123 | | - MockMode bool `env:"ANCHOR_CLI_KEYRING_MOCK_MODE"` |
124 | | - } |
125 | | - |
126 | | - Version struct{} `cmd:"version"` |
127 | | - |
128 | | - // values used for testing |
129 | | - |
130 | | - GOOS string `desc:"change OS identifier in tests"` |
131 | | - ProcFS fs.FS `desc:"change the proc filesystem in tests"` |
132 | | - Timestamp time.Time `desc:"timestamp to use/display in tests"` |
133 | | -} |
134 | | - |
135 | 51 | type UI struct { |
136 | 52 | RunTUI func(context.Context, *ui.Driver) error |
137 | 53 | } |
@@ -228,12 +144,7 @@ func ReportError(ctx context.Context, drv *ui.Driver, cmd *cobra.Command, args [ |
228 | 144 | fmt.Fprintf(&body, "**Version:** `%s`\n", VersionString()) |
229 | 145 | fmt.Fprintf(&body, "**Arguments:** `[%s]`\n", strings.Join(args, ", ")) |
230 | 146 | fmt.Fprintf(&body, "**Flags:** `[%s]`\n", strings.Join(flags, ", ")) |
231 | | - |
232 | | - timestamp := cfg.Timestamp |
233 | | - if timestamp.IsZero() { |
234 | | - timestamp = time.Now().UTC() |
235 | | - } |
236 | | - fmt.Fprintf(&body, "**Timestamp:** `%s`\n", timestamp.Format(time.RFC3339Nano)) |
| 147 | + fmt.Fprintf(&body, "**Timestamp:** `%s`\n", cfg.Timestamp().Format(time.RFC3339Nano)) |
237 | 148 | if stack != "" { |
238 | 149 | fmt.Fprintf(&body, "**Stack:**\n```\n%s\n```\n", normalizeStack(stack)) |
239 | 150 | } |
|
0 commit comments