diff --git a/main.go b/main.go
index 9699d68..6755a0d 100644
--- a/main.go
+++ b/main.go
@@ -12,6 +12,7 @@ import (
"cook/utils"
"github.com/go-git/go-git/v5"
+ "gopkg.in/yaml.v3"
logger "git.site.quack-lab.dev/dave/cylogger"
)
@@ -63,8 +64,9 @@ func main() {
// The plan is:
// Load all commands
commands, err := utils.LoadCommands(args)
- if err != nil {
+ if err != nil || len(commands) == 0 {
logger.Error("Failed to load commands: %v", err)
+ CreateExampleConfig()
flag.Usage()
return
}
@@ -250,6 +252,49 @@ func main() {
}
}
+func CreateExampleConfig() {
+ commands := []utils.ModifyCommand{
+ {
+ Name: "DoubleNumericValues",
+ Regex: "(\\d+)",
+ Lua: "v1 * 2",
+ Files: []string{"data/*.xml"},
+ LogLevel: "INFO",
+ },
+ {
+ Name: "UpdatePrices",
+ Regex: "price=\"(\\d+)\"",
+ Lua: "if num(v1) < 100 then return v1 * 1.5 else return v1 end",
+ Files: []string{"items/*.xml", "shop/*.xml"},
+ Git: true,
+ LogLevel: "DEBUG",
+ },
+ {
+ Name: "IsolatedTagUpdate",
+ Regex: "(.*?)",
+ Lua: "string.upper(s1)",
+ Files: []string{"config.xml"},
+ Isolate: true,
+ NoDedup: true,
+ LogLevel: "TRACE",
+ },
+ }
+
+ data, err := yaml.Marshal(commands)
+ if err != nil {
+ logger.Error("Failed to marshal example config: %v", err)
+ return
+ }
+
+ err = os.WriteFile("example_cook.yml", data, 0644)
+ if err != nil {
+ logger.Error("Failed to write example_cook.yml: %v", err)
+ return
+ }
+
+ logger.Info("Wrote example_cook.yml")
+}
+
func RunOtherCommands(file string, fileDataStr string, association utils.FileCommandAssociation, fileMutex *sync.Mutex, commandLoggers map[string]*logger.Logger) (string, error) {
// Aggregate all the modifications and execute them
modifications := []utils.ReplaceCommand{}