MCPcopy Index your code
hub / github.com/coder/coder / setArchiveTemplateVersion

Method setArchiveTemplateVersion

cli/templateversionarchive.go:26–100  ·  view source on GitHub ↗

nolint:revive

(archive bool)

Source from the content-addressed store, hash-verified

24
25//nolint:revive
26func (r *RootCmd) setArchiveTemplateVersion(archive bool) *serpent.Command {
27 presentVerb := "archive"
28 pastVerb := "archived"
29 if !archive {
30 presentVerb = "unarchive"
31 pastVerb = "unarchived"
32 }
33
34 orgContext := NewOrganizationContext()
35 cmd := &serpent.Command{
36 Use: presentVerb + " <template-name> [template-version-names...] ",
37 Short: strings.ToUpper(string(presentVerb[0])) + presentVerb[1:] + " a template version(s).",
38 Options: serpent.OptionSet{
39 cliui.SkipPromptOption(),
40 },
41 Handler: func(inv *serpent.Invocation) error {
42 var (
43 ctx = inv.Context()
44 versions []codersdk.TemplateVersion
45 )
46
47 client, err := r.InitClient(inv)
48 if err != nil {
49 return err
50 }
51
52 organization, err := orgContext.Selected(inv, client)
53 if err != nil {
54 return err
55 }
56
57 if len(inv.Args) == 0 {
58 return xerrors.Errorf("missing template name")
59 }
60 if len(inv.Args) < 2 {
61 return xerrors.Errorf("missing template version name(s)")
62 }
63
64 templateName := inv.Args[0]
65 template, err := client.TemplateByName(ctx, organization.ID, templateName)
66 if err != nil {
67 return xerrors.Errorf("get template by name: %w", err)
68 }
69 for _, versionName := range inv.Args[1:] {
70 version, err := client.TemplateVersionByOrganizationAndName(ctx, organization.ID, template.Name, versionName)
71 if err != nil {
72 return xerrors.Errorf("get template version by name %q: %w", versionName, err)
73 }
74 versions = append(versions, version)
75 }
76
77 for _, version := range versions {
78 if version.Archived == archive {
79 _, _ = fmt.Fprintln(
80 inv.Stdout, "Version "+pretty.Sprint(cliui.DefaultStyles.Keyword, version.Name)+" already "+pastVerb,
81 )
82 continue
83 }

Callers 2

Calls 11

InitClientMethod · 0.95
SelectedMethod · 0.95
AttachOptionsMethod · 0.95
SkipPromptOptionFunction · 0.92
TimestampFunction · 0.92
NewOrganizationContextFunction · 0.85
ContextMethod · 0.65
TemplateByNameMethod · 0.65
ErrorfMethod · 0.45

Tested by

no test coverage detected