@@ -40,7 +40,7 @@ type DefaultParser struct {
4040type Parser interface {
4141 Exists (string ) bool
4242 GetTags () []string
43- GetPresets (string ) [ ]string
43+ GetPresets (string ) map [ string ]string
4444 Install (string ) error
4545 Create (string ) error
4646 Add (string , shell.Shell ) error
@@ -97,7 +97,7 @@ func (p *DefaultParser) GetTags() (tags []string) {
9797}
9898
9999// GetPresets look up all presets IDs with the given tag
100- func (p * DefaultParser ) GetPresets (tag string ) (presets [ ]string ) {
100+ func (p * DefaultParser ) GetPresets (tag string ) (presets map [ string ]string ) {
101101 var (
102102 entries []fs.DirEntry
103103 folder fs.DirEntry
@@ -107,6 +107,8 @@ func (p *DefaultParser) GetPresets(tag string) (presets []string) {
107107
108108 entries , _ = source .ReadDir ("presets" )
109109
110+ presets = make (map [string ]string , len (entries ))
111+
110112 for _ , folder = range entries {
111113 data , _ = source .ReadFile (
112114 fmt .Sprintf (presetConfigFile , folder .Name ()),
@@ -116,11 +118,14 @@ func (p *DefaultParser) GetPresets(tag string) (presets []string) {
116118 _ = yaml .Unmarshal (data , config )
117119
118120 if config .HasTag (tag ) {
119- presets = append (presets , folder .Name ())
121+ presets [folder .Name ()] = folder .Name ()
122+
123+ if config .Name != "" {
124+ presets [folder .Name ()] = config .Name
125+ }
120126 }
121127 }
122128
123- sort .Strings (presets )
124129 return
125130}
126131
0 commit comments