diff --git a/processing.go b/processing.go index a97f5eb..0223283 100644 --- a/processing.go +++ b/processing.go @@ -77,47 +77,47 @@ func JankImage(settings Conversion, in_file string, out_file string) { } func UnfuckedPathSplit(path string) []string { - path = filepath.ToSlash(path) - // WARN: have to use strings.Split because fsnotify uses /, even on windows - return strings.Split(path, "/")[1:] + path = filepath.ToSlash(path) + // WARN: have to use strings.Split because fsnotify uses /, even on windows + return strings.Split(path, "/")[1:] } func SplitPathExt(path string) (string, string, bool) { - split_path := UnfuckedPathSplit(path) - source_name := strings.Join(split_path, "/") // Render wants / even on windows + split_path := UnfuckedPathSplit(path) + source_name := strings.Join(split_path, "/") // Render wants / even on windows - ext := filepath.Ext(source_name) - source_name, found := strings.CutSuffix(source_name, ext) - return source_name, ext, found + ext := filepath.Ext(source_name) + source_name, found := strings.CutSuffix(source_name, ext) + return source_name, ext, found } func RePrefixPath(path string, new_prefix string) string { - split_path := UnfuckedPathSplit(path) + split_path := UnfuckedPathSplit(path) - prefixed_path := append([]string{new_prefix}, split_path...) + prefixed_path := append([]string{new_prefix}, split_path...) - res := filepath.Join(prefixed_path...) - return filepath.ToSlash(res) + res := filepath.Join(prefixed_path...) + return filepath.ToSlash(res) } func SamePath(a string, b string) bool { - return filepath.ToSlash(a) == filepath.ToSlash(b) + return filepath.ToSlash(a) == filepath.ToSlash(b) } func MkdirPath(target_path string) error { - target_dir := filepath.Dir(target_path) - _, err := os.Stat(target_dir) + target_dir := filepath.Dir(target_path) + _, err := os.Stat(target_dir) - if os.IsNotExist(err) { - log.Println("MAKING: ", target_dir) - err = os.MkdirAll(target_dir, 0750) + if os.IsNotExist(err) { + log.Println("MAKING: ", target_dir) + err = os.MkdirAll(target_dir, 0750) - if err != nil { - log.Fatal("making path to %s: %v", target_dir, err) - } - } + if err != nil { + log.Fatal("making path to %s: %v", target_dir, err) + } + } - return nil + return nil } func Included(config Settings, path string) bool { @@ -157,38 +157,39 @@ func HasChanged(old_info fs.FileInfo, new_path string) bool { return false } - return old_info.ModTime().After(new_info.ModTime()) + return old_info.ModTime().After(new_info.ModTime()) } func RenderImages(config Settings, force bool) error { err := filepath.WalkDir(config.Source, - func(path string, d fs.DirEntry, err error) error { - path = filepath.ToSlash(path) - - if !d.IsDir() && Included(config, path) { - target := RePrefixPath(path, config.Target) - - err = MkdirPath(target) - if err != nil { - log.Fatalf("failed to make path %s: %v", path, err) - } - - fmt.Println("FILE: ", path, "TARGET:", target) - convert := GetConversion(config, path) - - path_info, err := d.Info() - if err != nil { - log.Fatalf("failed to stat %s: %v", path, err) - } - - if force || HasChanged(path_info, target) { - JankImage(convert, path, target) - } - } else { - fmt.Println("SKIP:", path) + func(path string, d fs.DirEntry, err error) error { + path = filepath.ToSlash(path) + + if !d.IsDir() && Included(config, path) { + target := RePrefixPath(path, config.Target) + + err = MkdirPath(target) + if err != nil { + log.Fatalf("failed to make path %s: %v", path, err) + } + + fmt.Println("FILE: ", path, "TARGET:", target) + convert := GetConversion(config, path) + + path_info, err := d.Info() + if err != nil { + log.Fatalf("failed to stat %s: %v", path, err) } - return nil + if force || HasChanged(path_info, target) { + // have to lowercase the target path to avoid windows issues + JankImage(convert, path, strings.ToLower(target)) + } + } else { + fmt.Println("SKIP:", path) + } + + return nil }) return err