-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathAliasFunctions.go
53 lines (45 loc) · 1.35 KB
/
AliasFunctions.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package main
import (
"os"
"path/filepath"
)
func writeAliasList(aliasList *[]AliasEntity, parentDir string, seenNames map[string]bool) {
for i := range *aliasList {
alias := &(*aliasList)[i]
if alias.IsFolder == "no" {
handleAliases(&alias.AliasList, parentDir, seenNames)
}
writeScriptFiles(alias, parentDir, seenNames)
}
}
func writeAliasJson(aliasList *[]AliasEntity, parentDir string) {
writeJsonToFilewriteJsonToFile(aliasList, parentDir, "aliases.json")
}
func handleAliases(aliasList *[]AliasEntity, parentDir string, seenNames map[string]bool) {
if len(*aliasList) == 0 {
return
}
if parentDir != "" {
if err := os.MkdirAll(parentDir, 0755); err != nil {
panic(err)
}
}
writeAliasList(aliasList, parentDir, seenNames)
writeAliasJson(aliasList, parentDir)
}
func handleAliasGroups(groups *[]AliasEntity, baseDir string, seenNames map[string]bool) {
for i := range *groups {
group := &(*groups)[i]
groupPath := filepath.Join(baseDir, group.Name)
if err := os.MkdirAll(groupPath, 0755); err != nil {
panic(err)
}
handleAliases(&group.AliasList, groupPath, seenNames)
handleAliasGroups(&group.AliasGroup, groupPath, seenNames)
group.AliasList = nil
var singleGroup []AliasEntity
singleGroup = append(singleGroup, *group)
writeAliasList(&singleGroup, baseDir, seenNames)
writeAliasJson(&singleGroup, baseDir)
}
}