@@ -14,24 +14,30 @@ import (
14
14
"github.com/coder/coder/v2/codersdk"
15
15
)
16
16
17
+ func (r * RootCmd ) unarchiveTemplateVersion () * clibase.Cmd {
18
+ return r .setArchiveTemplateVersion (false )
19
+ }
17
20
func (r * RootCmd ) archiveTemplateVersion () * clibase.Cmd {
18
- var unarchive clibase.Bool
21
+ return r .setArchiveTemplateVersion (true )
22
+ }
23
+
24
+ func (r * RootCmd ) setArchiveTemplateVersion (archive bool ) * clibase.Cmd {
25
+ presentVerb := "archive"
26
+ pastVerb := "archived"
27
+ if ! archive {
28
+ presentVerb = "unarchive"
29
+ pastVerb = "unarchived"
30
+ }
19
31
20
32
client := new (codersdk.Client )
21
33
cmd := & clibase.Cmd {
22
- Use : "archive <template-name> [template-version-names...] " ,
23
- Short : "Archive or unarchive a template version(s)." ,
34
+ Use : presentVerb + " <template-name> [template-version-names...] " ,
35
+ Short : strings . ToUpper ( string ( presentVerb [ 0 ])) + presentVerb [ 1 :] + " a template version(s)." ,
24
36
Middleware : clibase .Chain (
25
37
r .InitClient (client ),
26
38
),
27
39
Options : clibase.OptionSet {
28
40
cliui .SkipPromptOption (),
29
- clibase.Option {
30
- Name : "unarchive" ,
31
- Description : "Unarchive the selected template version." ,
32
- Flag : "unarchive" ,
33
- Value : & unarchive ,
34
- },
35
41
},
36
42
Handler : func (inv * clibase.Invocation ) error {
37
43
var (
@@ -64,26 +70,22 @@ func (r *RootCmd) archiveTemplateVersion() *clibase.Cmd {
64
70
versions = append (versions , version )
65
71
}
66
72
67
- verb := "archived"
68
- if unarchive {
69
- verb = "unarchived"
70
- }
71
73
failed := 0
72
74
for _ , version := range versions {
73
- if version .Archived == ! unarchive . Value () {
75
+ if version .Archived == archive {
74
76
_ , _ = fmt .Fprintln (
75
- inv .Stdout , fmt .Sprintf ("Version " + pretty .Sprint (cliui .DefaultStyles .Keyword , version .Name )+ " already " + verb ),
77
+ inv .Stdout , fmt .Sprintf ("Version " + pretty .Sprint (cliui .DefaultStyles .Keyword , version .Name )+ " already " + pastVerb ),
76
78
)
77
79
continue
78
80
}
79
81
80
- err := client .SetArchiveTemplateVersion (ctx , version .ID , ! unarchive . Value () )
82
+ err := client .SetArchiveTemplateVersion (ctx , version .ID , archive )
81
83
if err != nil {
82
- return xerrors .Errorf ("set template version %q: %w" , version .Name , err )
84
+ return xerrors .Errorf ("%s template version %q: %w" , presentVerb , version .Name , err )
83
85
}
84
86
85
87
_ , _ = fmt .Fprintln (
86
- inv .Stdout , fmt .Sprintf ("Version " + pretty .Sprint (cliui .DefaultStyles .Keyword , version .Name )+ " " + verb + " at " + cliui .Timestamp (time .Now ())),
88
+ inv .Stdout , fmt .Sprintf ("Version " + pretty .Sprint (cliui .DefaultStyles .Keyword , version .Name )+ " " + pastVerb + " at " + cliui .Timestamp (time .Now ())),
87
89
)
88
90
}
89
91
0 commit comments