MCPcopy
hub / github.com/cli/cli / deleteRun

Function deleteRun

pkg/cmd/alias/delete/delete.go:53–98  ·  view source on GitHub ↗
(opts *DeleteOptions)

Source from the content-addressed store, hash-verified

51}
52
53func deleteRun(opts *DeleteOptions) error {
54 cfg, err := opts.Config()
55 if err != nil {
56 return err
57 }
58
59 aliasCfg := cfg.Aliases()
60
61 aliases := make(map[string]string)
62 if opts.All {
63 aliases = aliasCfg.All()
64 if len(aliases) == 0 {
65 return cmdutil.NewNoResultsError("no aliases configured")
66 }
67 } else {
68 expansion, err := aliasCfg.Get(opts.Name)
69 if err != nil {
70 return fmt.Errorf("no such alias %s", opts.Name)
71 }
72 aliases[opts.Name] = expansion
73 }
74
75 for name := range aliases {
76 if err := aliasCfg.Delete(name); err != nil {
77 return fmt.Errorf("failed to delete alias %s: %w", name, err)
78 }
79 }
80
81 if err := cfg.Write(); err != nil {
82 return err
83 }
84
85 if opts.IO.IsStdoutTTY() {
86 cs := opts.IO.ColorScheme()
87 keys := make([]string, 0, len(aliases))
88 for k := range aliases {
89 keys = append(keys, k)
90 }
91 sort.Strings(keys)
92 for _, k := range keys {
93 fmt.Fprintf(opts.IO.ErrOut, "%s Deleted alias %s; was %s\n", cs.SuccessIconWithColor(cs.Red), k, aliases[k])
94 }
95 }
96
97 return nil
98}

Callers 2

NewCmdDeleteFunction · 0.70
TestDeleteRunFunction · 0.70

Calls 11

NewNoResultsErrorFunction · 0.92
IsStdoutTTYMethod · 0.80
ColorSchemeMethod · 0.80
SuccessIconWithColorMethod · 0.80
ConfigMethod · 0.65
AliasesMethod · 0.65
AllMethod · 0.65
GetMethod · 0.65
ErrorfMethod · 0.65
DeleteMethod · 0.65
WriteMethod · 0.65

Tested by 1

TestDeleteRunFunction · 0.56