Skip to content

Commit 6809e47

Browse files
Add verbose logging
1 parent 5493316 commit 6809e47

File tree

2 files changed

+47
-13
lines changed

2 files changed

+47
-13
lines changed

cmd/merge/go.sum

Whitespace-only changes.

cmd/merge/merge.go

+47-13
Original file line numberDiff line numberDiff line change
@@ -12,43 +12,74 @@ import (
1212
var dir string
1313
var extensions string
1414
var output string
15+
var verbose bool
1516

1617
func init() {
1718
flag.StringVar(&dir, "directory", "./path/to/files/", "directory of files to merge")
1819
flag.StringVar(&extensions, "extension", ".txt", "the file extension of files to merge. Use comma separation for multiple types.")
1920
flag.StringVar(&output, "output", "./output.txt", "the output file name")
21+
flag.BoolVar(&verbose, "verbose", false, "verbose logging")
2022
}
2123

2224
func main() {
23-
tmp := make([]byte, 0)
24-
directory := os.DirFS(dir)
25+
26+
if verbose {
27+
fmt.Printf("called with directory=%s, extension=%s, output=%s\n", dir, extensions, output)
28+
}
2529

2630
acceptedExtensions := strings.Split(extensions, ",")
2731

28-
walkErr := fs.WalkDir(directory, ".", func(path string, d fs.DirEntry, err error) error {
29-
if d.IsDir() {
32+
if verbose {
33+
fmt.Printf("accepted extensions: include %s\n", strings.Join(acceptedExtensions, ", "))
34+
}
35+
36+
Merge(dir, acceptedExtensions, output, verbose)
37+
}
38+
39+
func Merge(d string, fileExtensions []string, outputFilepath string, verboseLogging bool) {
40+
directory := os.DirFS(d)
41+
42+
tmp := make([]byte, 0)
43+
44+
walkErr := fs.WalkDir(directory, ".", func(path string, entry fs.DirEntry, err error) error {
45+
if entry.IsDir() {
46+
if verboseLogging {
47+
fmt.Printf("skipping directory %s\n", d+path)
48+
}
3049
return nil
3150
}
3251

3352
if err != nil {
53+
if verboseLogging {
54+
fmt.Printf("error checking directory %s\n", d+path)
55+
}
3456
return err
3557
}
3658

37-
if len(acceptedExtensions) != 0 {
59+
if len(fileExtensions) != 0 {
3860
found := false
39-
for _, extension := range acceptedExtensions {
61+
for _, extension := range fileExtensions {
4062
if strings.HasSuffix(path, extension) {
4163
found = true
64+
fmt.Printf("found matching file extension %s for %s\n", extension, d+path)
4265
break
4366
}
4467
}
4568
if !found {
69+
if verboseLogging {
70+
fmt.Printf("didn't find matching file extension for %s\n", d+path)
71+
}
4672
return nil
4773
}
74+
} else {
75+
if verboseLogging {
76+
fmt.Println("no extensions to check")
77+
}
4878
}
4979

50-
fileBytes, readErr := os.ReadFile(dir + path)
80+
fileBytes, readErr := os.ReadFile(d + path)
5181
if readErr != nil {
82+
fmt.Printf("error reading file %s\n", d+path)
5283
return readErr
5384
}
5485

@@ -57,29 +88,32 @@ func main() {
5788
})
5889

5990
if walkErr != nil {
60-
log.Print(walkErr)
91+
fmt.Printf("error walking file system %s\n", walkErr)
6192
}
6293

63-
if _, err := os.Stat(output); err == nil {
94+
if _, err := os.Stat(outputFilepath); err == nil {
6495

65-
inputBytes, readErr := os.ReadFile(output)
96+
inputBytes, readErr := os.ReadFile(outputFilepath)
6697
if readErr != nil {
98+
fmt.Printf("didn't find existing file %s\n", outputFilepath)
6799
log.Print(err)
68100
os.Exit(1)
69101
}
70102

71-
if err := os.WriteFile(output+".old", inputBytes, 0777); err != nil {
103+
if err := os.WriteFile(outputFilepath+".old", inputBytes, 0777); err != nil {
72104
log.Print(err)
73105
os.Exit(1)
74106
}
107+
} else {
108+
fmt.Printf("didn't find existing file %s\n", outputFilepath)
75109
}
76110

77-
err := os.WriteFile(output, tmp, 0777)
111+
err := os.WriteFile(outputFilepath, tmp, 0777)
78112

79113
if err != nil {
80114
log.Print(err)
81115
os.Exit(1)
82116
}
83117

84-
fmt.Printf("created %s\n", output)
118+
fmt.Printf("created %s\n", outputFilepath)
85119
}

0 commit comments

Comments
 (0)