code.oscarkilo.com/okg/main.go

.gitignore
README.md
auth.go
client.go
config.go
go.mod
main.go
okg_test.go
pr.go
repo.go
package main

import "fmt"
import "os"

func main() {
  args := os.Args[1:]
  if len(args) == 0 {
    printUsage()
    os.Exit(1)
  }

  var err error
  switch args[0] {
  case "pr":
    err = runPR(args[1:])
  case "repo":
    err = runRepo(args[1:])
  case "auth":
    err = runAuth(args[1:])
  case "help", "--help", "-h":
    printUsage()
    return
  default:
    fmt.Fprintf(os.Stderr, "unknown command: %s\n", args[0])
    printUsage()
    os.Exit(1)
  }

  if err != nil {
    fmt.Fprintf(os.Stderr, "error: %v\n", err)
    os.Exit(1)
  }
}

func printUsage() {
  fmt.Fprintf(os.Stderr, `okg — Oscar Kilo Git CLI

Usage:
  okg pr list    [--state open|closed] [--json]
  okg pr create  --head BRANCH [--base master] \
                 --title TITLE [--body BODY] [--json]
  okg pr view    NUMBER [--json]
  okg pr diff    NUMBER
  okg pr comment NUMBER --body BODY \
                 [--approve | --request-changes]
  okg pr merge   NUMBER [--json]
  okg pr close   NUMBER [--json]
  okg pr reopen  NUMBER [--json]
  okg repo list  [--json]
  okg auth login [--host HOST] [--user USERNAME]

Flags:
  --repo REPO    Override auto-detected repo name
  --json         Output raw JSON
`)
}