Add api subcommand for arbitrary api calls not covered by existing subcommands (#879)

Reviewed-on: https://gitea.com/gitea/tea/pulls/879
Co-authored-by: techknowlogick <techknowlogick@gitea.com>
Co-committed-by: techknowlogick <techknowlogick@gitea.com>
This commit is contained in:
techknowlogick
2026-02-03 20:24:21 +00:00
committed by techknowlogick
parent 6414a5e00e
commit 82d8a14c73
9 changed files with 540 additions and 133 deletions

16
main.go
View File

@@ -16,7 +16,7 @@ import (
func main() {
app := cmd.App()
app.Flags = append(app.Flags, debug.CliFlag())
err := app.Run(context.Background(), os.Args)
err := app.Run(context.Background(), preprocessArgs(os.Args))
if err != nil {
// app.Run already exits for errors implementing ErrorCoder,
// so we only handle generic errors with code 1 here.
@@ -24,3 +24,17 @@ func main() {
os.Exit(1)
}
}
// preprocessArgs normalizes command-line arguments.
// Converts "-o-" to "-o -" for the api command's output flag.
func preprocessArgs(args []string) []string {
result := make([]string, 0, len(args)+1)
for _, arg := range args {
if arg == "-o-" {
result = append(result, "-o", "-")
} else {
result = append(result, arg)
}
}
return result
}