2026-04-14 22:40:14 -07:00

59 lines
1002 B
Go

package cli
import (
"fmt"
"log"
"os"
"termtap.dev/internal/app"
"termtap.dev/internal/model"
"termtap.dev/internal/tui"
)
// This should be configurable at some point, just in case they build on 8080
const proxy_addr = "127.0.0.1:8080"
func Run(args []string) {
cmd, ok := parseCommand(args)
if !ok {
displayHelp()
return
}
session, err := app.StartSession(cmd, proxy_addr)
if err != nil {
log.Fatalln(err)
}
defer session.Stop()
if err := tui.Run(session.Events); err != nil {
log.Fatalln(err)
}
}
func parseCommand(args []string) (model.Command, bool) {
if len(args) < 4 {
return model.Command{}, false
}
if args[1] != "run" || args[2] != "--" {
return model.Command{}, false
}
args = args[3:]
if len(args) == 1 {
return model.Command{Name: args[0], Args: []string{}}, true
}
return model.Command{Name: args[0], Args: args[1:]}, true
}
func displayHelp() {
helpText := `
usage:
tap run -- <command> [args...]
`
fmt.Fprintln(os.Stderr, helpText)
}