Refactor git shit to its own module

This commit is contained in:
2025-03-27 22:20:22 +01:00
parent f008efd5e1
commit 89eed3f847
3 changed files with 132 additions and 118 deletions

View File

@@ -3,6 +3,7 @@ package utils
import (
"fmt"
"modify/logger"
"os"
"github.com/bmatcuk/doublestar/v4"
)
@@ -73,6 +74,39 @@ func AggregateGlobs(commands []ModifyCommand) map[string]struct{} {
return globs
}
func ExpandGLobs(patterns map[string]struct{}) ([]string, error) {
var files []string
filesMap := make(map[string]bool)
cwd, err := os.Getwd()
if err != nil {
return nil, fmt.Errorf("failed to get current working directory: %w", err)
}
logger.Debug("Expanding patterns from directory: %s", cwd)
for pattern, _ := range patterns {
logger.Trace("Processing pattern: %s", pattern)
matches, _ := doublestar.Glob(os.DirFS(cwd), pattern)
logger.Debug("Found %d matches for pattern %s", len(matches), pattern)
for _, m := range matches {
info, err := os.Stat(m)
if err != nil {
logger.Warning("Error getting file info for %s: %v", m, err)
continue
}
if !info.IsDir() && !filesMap[m] {
logger.Trace("Adding file to process list: %s", m)
filesMap[m], files = true, append(files, m)
}
}
}
if len(files) > 0 {
logger.Debug("Found %d files to process: %v", len(files), files)
}
return files, nil
}
func LoadCommands(args []string) ([]ModifyCommand, error) {
commands := []ModifyCommand{}