Clean up code add some log lines and tidy up expandglobs
This commit is contained in:
51
main.go
51
main.go
@@ -43,6 +43,7 @@ type ModifyCommand struct {
|
|||||||
Reset bool `yaml:"reset"`
|
Reset bool `yaml:"reset"`
|
||||||
LogLevel string `yaml:"loglevel"`
|
LogLevel string `yaml:"loglevel"`
|
||||||
}
|
}
|
||||||
|
type CookFile []ModifyCommand
|
||||||
|
|
||||||
func (c *ModifyCommand) Validate() error {
|
func (c *ModifyCommand) Validate() error {
|
||||||
if c.Pattern == "" {
|
if c.Pattern == "" {
|
||||||
@@ -89,13 +90,28 @@ func main() {
|
|||||||
logger.Info("Initializing with log level: %s", level.String())
|
logger.Info("Initializing with log level: %s", level.String())
|
||||||
|
|
||||||
commands := []ModifyCommand{}
|
commands := []ModifyCommand{}
|
||||||
var err error
|
logger.Info("Loading commands from cook files: %s", *cookfile)
|
||||||
commands, err = LoadCommandsFromCookFiles(*cookfile, commands)
|
newcommands, err := LoadCommandsFromCookFiles(*cookfile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("Failed to load commands from cook files: %v", err)
|
logger.Error("Failed to load commands from cook files: %v", err)
|
||||||
flag.Usage()
|
flag.Usage()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
logger.Info("Successfully loaded %d commands from cook files", len(newcommands))
|
||||||
|
commands = append(commands, newcommands...)
|
||||||
|
logger.Info("Now total commands: %d", len(commands))
|
||||||
|
|
||||||
|
logger.Info("Loading commands from arguments: %v", args)
|
||||||
|
newcommands, err = LoadCommandFromArgs(args)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("Failed to load commands from args: %v", err)
|
||||||
|
flag.Usage()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
logger.Info("Successfully loaded %d commands from args", len(newcommands))
|
||||||
|
commands = append(commands, newcommands...)
|
||||||
|
logger.Info("Now total commands: %d", len(commands))
|
||||||
|
|
||||||
// The plan is:
|
// The plan is:
|
||||||
// Load all commands
|
// Load all commands
|
||||||
// Then aggregate all the globs and deduplicate them
|
// Then aggregate all the globs and deduplicate them
|
||||||
@@ -117,14 +133,21 @@ func main() {
|
|||||||
// TODO: Maybe even figure out how to run individual commands...?
|
// TODO: Maybe even figure out how to run individual commands...?
|
||||||
// TODO: What to do with git? Figure it out ....
|
// TODO: What to do with git? Figure it out ....
|
||||||
|
|
||||||
commands, err = LoadCommandFromArgs(args, commands)
|
logger.Info("Expanding file patterns for %d commands", len(commands))
|
||||||
|
globs := make(map[string]struct{})
|
||||||
|
for _, command := range commands {
|
||||||
|
for _, glob := range command.Files {
|
||||||
|
globs[glob] = struct{}{}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
logger.Info("Found %d unique file patterns", len(globs))
|
||||||
|
files, err := ExpandGLobs(globs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("Failed to load commands from args: %v", err)
|
logger.Error("Failed to expand file patterns: %v", err)
|
||||||
flag.Usage()
|
flag.Usage()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// Use this to clone loggers for individual commands
|
logger.Info("Found %d files to process", len(files))
|
||||||
// logger.WithField("loglevel", level.String())
|
|
||||||
|
|
||||||
// if *gitFlag {
|
// if *gitFlag {
|
||||||
// logger.Info("Git integration enabled, setting up git repository")
|
// logger.Info("Git integration enabled, setting up git repository")
|
||||||
@@ -215,7 +238,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func LoadCommandFromArgs(args []string, commands []ModifyCommand) ([]ModifyCommand, error) {
|
func LoadCommandFromArgs(args []string) ([]ModifyCommand, error) {
|
||||||
// Cannot reset without git, right?
|
// Cannot reset without git, right?
|
||||||
if *resetFlag {
|
if *resetFlag {
|
||||||
*gitFlag = true
|
*gitFlag = true
|
||||||
@@ -224,7 +247,7 @@ func LoadCommandFromArgs(args []string, commands []ModifyCommand) ([]ModifyComma
|
|||||||
if len(args) < 3 {
|
if len(args) < 3 {
|
||||||
logger.Error("At least %d arguments are required", 3)
|
logger.Error("At least %d arguments are required", 3)
|
||||||
flag.Usage()
|
flag.Usage()
|
||||||
return commands, fmt.Errorf("at least %d arguments are required", 3)
|
return nil, fmt.Errorf("at least %d arguments are required", 3)
|
||||||
}
|
}
|
||||||
|
|
||||||
command := ModifyCommand{
|
command := ModifyCommand{
|
||||||
@@ -239,14 +262,14 @@ func LoadCommandFromArgs(args []string, commands []ModifyCommand) ([]ModifyComma
|
|||||||
if err := command.Validate(); err != nil {
|
if err := command.Validate(); err != nil {
|
||||||
logger.Error("Invalid command: %v", err)
|
logger.Error("Invalid command: %v", err)
|
||||||
flag.Usage()
|
flag.Usage()
|
||||||
return commands, fmt.Errorf("invalid command: %v", err)
|
return nil, fmt.Errorf("invalid command: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return append(commands, command), nil
|
return []ModifyCommand{command}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func LoadCommandsFromCookFiles(s string, commands []ModifyCommand) ([]ModifyCommand, error) {
|
func LoadCommandsFromCookFiles(s string) ([]ModifyCommand, error) {
|
||||||
return commands, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupGit() error {
|
func setupGit() error {
|
||||||
@@ -278,7 +301,7 @@ func setupGit() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func expandFilePatterns(patterns []string) ([]string, error) {
|
func ExpandGLobs(patterns map[string]struct{}) ([]string, error) {
|
||||||
var files []string
|
var files []string
|
||||||
filesMap := make(map[string]bool)
|
filesMap := make(map[string]bool)
|
||||||
|
|
||||||
@@ -288,7 +311,7 @@ func expandFilePatterns(patterns []string) ([]string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
logger.Debug("Expanding patterns from directory: %s", cwd)
|
logger.Debug("Expanding patterns from directory: %s", cwd)
|
||||||
for _, pattern := range patterns {
|
for pattern, _ := range patterns {
|
||||||
logger.Trace("Processing pattern: %s", pattern)
|
logger.Trace("Processing pattern: %s", pattern)
|
||||||
matches, _ := doublestar.Glob(os.DirFS(cwd), pattern)
|
matches, _ := doublestar.Glob(os.DirFS(cwd), pattern)
|
||||||
logger.Debug("Found %d matches for pattern %s", len(matches), pattern)
|
logger.Debug("Found %d matches for pattern %s", len(matches), pattern)
|
||||||
|
Reference in New Issue
Block a user