Add repo-memory integration tests

This commit is contained in:
2026-03-20 16:01:48 +08:00
parent dd6b9c2c1f
commit 9915e12a30
16 changed files with 1394 additions and 79 deletions
@@ -0,0 +1,66 @@
package main
import (
"fmt"
"io"
"os"
"sync"
)
var (
executeMu sync.Mutex
commandStdout io.Writer = os.Stdout
commandStderr io.Writer = os.Stderr
)
func Execute(args []string, stdout, stderr io.Writer) int {
executeMu.Lock()
defer executeMu.Unlock()
prevStdout := commandStdout
prevStderr := commandStderr
commandStdout = stdout
commandStderr = stderr
defer func() {
commandStdout = prevStdout
commandStderr = prevStderr
}()
if len(args) < 1 {
usage()
return 2
}
if err := runCommand(args); err != nil {
_, _ = fmt.Fprintln(commandStderr, err)
return 1
}
return 0
}
func runCommand(args []string) error {
switch args[0] {
case "init":
return runInit(args[1:])
case "add":
return runAdd(args[1:])
case "ingest":
return runIngest(args[1:])
case "search":
return runSearch(args[1:])
case "list":
return runList(args[1:])
case "events":
return runEvents(args[1:])
case "link":
return runLink(args[1:])
case "verify":
return runVerify(args[1:])
case "repos":
return runRepos(args[1:])
default:
usage()
return fmt.Errorf("unknown command %s", args[0])
}
}