83 lines
2.1 KiB
Go
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])
|
|
}
|
|
}
|