diff --git a/README.md b/README.md index 46acee7..b0fa35b 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ A simple, rsync-based PocketBase deployment tool. ## init -- start a new PocketBase project +- start a new PocketBase project (optionally provide a service name via `pb init `) ## dev diff --git a/main.go b/main.go index 018ff66..4b2acb6 100644 --- a/main.go +++ b/main.go @@ -20,6 +20,8 @@ import ( tea "github.com/charmbracelet/bubbletea" ) +var initServiceNameArg string + func main() { commands := defaultCommands() args := os.Args[1:] @@ -37,6 +39,11 @@ func main() { return } + initServiceNameArg = "" + if args[0] == "init" && len(args) > 1 { + initServiceNameArg = args[1] + } + if args[0] == "menu" { if err := tea.NewProgram(newModel()).Start(); err != nil { log.Fatal(err) @@ -211,7 +218,7 @@ func runInit() error { } defaultName := generateServiceName() - serviceName, err := promptServiceName(defaultName) + serviceName, err := resolveServiceName(defaultName) if err != nil { return err } @@ -314,6 +321,14 @@ func promptServiceName(defaultName string) (string, error) { return input, nil } +func resolveServiceName(defaultName string) (string, error) { + if override := strings.TrimSpace(initServiceNameArg); override != "" { + initServiceNameArg = "" + return override, nil + } + return promptServiceName(defaultName) +} + func pocketbaseBinaryName(goos string) string { if goos == "windows" { return "pocketbase.exe"