Files
mev-beta/tools/main.go
2025-10-04 09:31:02 -05:00

83 lines
2.1 KiB
Go

package main
import (
"flag"
"log"
"os"
"github.com/fraktal/mev-beta/tools/bridge"
)
func main() {
// define subcommands
applyCmd := flag.NewFlagSet("apply", flag.ExitOnError)
revertCmd := flag.NewFlagSet("revert", flag.ExitOnError)
runCmd := flag.NewFlagSet("run", flag.ExitOnError)
summarizeCmd := flag.NewFlagSet("summarize", flag.ExitOnError)
// apply flags
applyPatch := applyCmd.String("patch", "", "Path to patch file")
applyBranch := applyCmd.String("branch", "", "Branch name to apply patch")
// revert flags
revertBranchName := revertCmd.String("branch", "", "Branch name to revert")
// run flags
runMode := runCmd.String("mode", "", "Execution mode (podman-compose)")
// summarize flags
summarizeArtifacts := summarizeCmd.String("artifacts", "", "Path to artifacts directory")
summarizeOut := summarizeCmd.String("out", "", "Output JSON file path")
// parse subcommand
if len(os.Args) < 2 {
log.Fatal("subcommand required: apply, revert, run, summarize")
}
switch os.Args[1] {
case "apply":
applyCmd.Parse(os.Args[2:])
if *applyPatch == "" || *applyBranch == "" {
log.Fatal("--patch and --branch are required")
}
op := bridge.PatchOperation{
PatchFile: *applyPatch,
BranchName: *applyBranch,
}
if err := bridge.ApplyPatch(op); err != nil {
log.Fatal(err)
}
case "revert":
revertCmd.Parse(os.Args[2:])
if *revertBranchName == "" {
log.Fatal("--branch is required")
}
if err := bridge.RevertBranch(*revertBranchName); err != nil {
log.Fatal(err)
}
case "run":
runCmd.Parse(os.Args[2:])
if *runMode == "podman-compose" {
if err := bridge.RunPodmanCompose(); err != nil {
log.Fatal(err)
}
} else {
log.Fatalf("unsupported run mode: %s", *runMode)
}
case "summarize":
summarizeCmd.Parse(os.Args[2:])
if *summarizeArtifacts == "" || *summarizeOut == "" {
log.Fatal("--artifacts and --out are required")
}
cfg := bridge.SummarizeConfig{
ArtifactsDir: *summarizeArtifacts,
OutputFile: *summarizeOut,
}
if err := bridge.SummarizeArtifacts(cfg); err != nil {
log.Fatal(err)
}
default:
log.Fatalf("unknown subcommand: %s", os.Args[1])
}
}