Skip to content

Commit 36d7f91

Browse files
authored
Merge pull request #22 from DiSiqueira/tree
Updating prints to utilize GoTree library
2 parents 627e10f + da84b40 commit 36d7f91

File tree

2 files changed

+62
-6
lines changed

2 files changed

+62
-6
lines changed

gorganizer.go

+43-3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"path"
1010
"path/filepath"
1111
"strings"
12+
"github.com/disiqueira/gotree"
1213
)
1314

1415
const (
@@ -19,6 +20,36 @@ var cfg *ini.File
1920
var cfgFile string
2021
var language string
2122

23+
func addToTree(folder, file string, tree gotree.GTStructure) gotree.GTStructure {
24+
25+
found := false
26+
27+
for i, item := range tree.Items {
28+
if item.Name == folder {
29+
30+
var newFile gotree.GTStructure
31+
newFile.Name = file
32+
33+
item.Items = append(item.Items, newFile)
34+
tree.Items[i] = item
35+
}
36+
}
37+
38+
if !found {
39+
var newFolder gotree.GTStructure
40+
var newFile gotree.GTStructure
41+
42+
newFolder.Name = folder
43+
newFile.Name = file
44+
45+
newFolder.Items = append(newFolder.Items, newFile)
46+
47+
tree.Items = append(tree.Items, newFolder)
48+
}
49+
50+
return tree
51+
}
52+
2253
func main() {
2354
outputFolder := flag.String("output", ".", "Main directory to put organized folders")
2455
inputFolder := flag.String("directory", ".", "The directory whose files to classify")
@@ -64,6 +95,10 @@ func main() {
6495
files, _ := ioutil.ReadDir(*inputFolder)
6596
fmt.Println("GOrganizing your Files")
6697

98+
var tree gotree.GTStructure
99+
100+
tree.Name = "Files"
101+
67102
for _, f := range files {
68103
if f.IsDir() {
69104
continue
@@ -76,18 +111,23 @@ func main() {
76111

77112
if len(newFolder) > 0 {
78113

79-
folder := filepath.Join(*outputFolder, iniGet(ext))
114+
folder := filepath.Join(*outputFolder, newFolder)
80115
newFile := filepath.Join(folder, f.Name())
81116

82-
fmt.Println(file + " --> " + newFile)
83-
84117
if !*preview {
85118
_ = os.Mkdir(folder, os.ModePerm)
86119
os.Rename(file, newFile)
87120
}
121+
} else {
122+
newFolder = "Unknown extension (will not be moved)"
88123
}
124+
125+
tree = addToTree(newFolder, f.Name(), tree)
126+
89127
}
90128

129+
gotree.PrintTree(tree)
130+
91131
fmt.Println("All files have been gorganized!")
92132

93133
}

ini.go

+19-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package main
22

33
import (
4-
"fmt"
54
"strings"
5+
"github.com/disiqueira/gotree"
66
)
77

88
func iniGet(key string) string {
@@ -49,15 +49,31 @@ func iniDelete(key string) bool {
4949
func iniScanExt() {
5050

5151
names := cfg.SectionStrings()
52-
fmt.Println("Extension | Folder")
52+
53+
var tree gotree.GTStructure
54+
55+
tree.Name = "Rules"
5356

5457
for _, section := range names[1:] {
58+
59+
var treeFolder gotree.GTStructure
60+
61+
treeFolder.Name = section
62+
5563
keys := cfg.Section(section).KeyStrings()
5664

5765
for _, key := range keys {
58-
fmt.Printf("%s | %s\n", key, section)
66+
67+
var treeItem gotree.GTStructure
68+
treeItem.Name = key
69+
70+
treeFolder.Items = append(treeFolder.Items, treeItem)
5971
}
6072

73+
tree.Items = append(tree.Items, treeFolder)
74+
6175
}
6276

77+
gotree.PrintTree(tree)
78+
6379
}

0 commit comments

Comments
 (0)