initial commit
This commit is contained in:
66
cmd/client/main.go
Normal file
66
cmd/client/main.go
Normal file
@@ -0,0 +1,66 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"grokway/internal/config"
|
||||
"grokway/internal/tui"
|
||||
"os"
|
||||
|
||||
tea "github.com/charmbracelet/bubbletea"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// Subcommand handling
|
||||
if len(os.Args) > 1 && os.Args[1] == "configure" {
|
||||
configureCmd := flag.NewFlagSet("configure", flag.ExitOnError)
|
||||
tokenFlag := configureCmd.String("token", "", "Authentication token")
|
||||
serverFlag := configureCmd.String("server", "", "Grokway server address (e.g., localhost:2222)")
|
||||
configureCmd.Parse(os.Args[2:])
|
||||
|
||||
if *tokenFlag == "" {
|
||||
fmt.Println("Error: --token is required")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
if err := config.Save(*tokenFlag, *serverFlag); err != nil {
|
||||
fmt.Printf("Error saving config: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
fmt.Println("Configuration saved successfully!")
|
||||
return
|
||||
}
|
||||
|
||||
// Normal run
|
||||
localPort := flag.String("local", "8080", "Local port to expose")
|
||||
serverAddrFlag := flag.String("server", "", "Grokway server address")
|
||||
tokenFlag := flag.String("token", "", "Authentication token (overrides config)")
|
||||
flag.Parse()
|
||||
|
||||
// Load config
|
||||
cfg, err := config.Load()
|
||||
authToken := *tokenFlag
|
||||
serverAddr := *serverAddrFlag
|
||||
|
||||
if err == nil {
|
||||
if authToken == "" {
|
||||
authToken = cfg.Token
|
||||
}
|
||||
if serverAddr == "" {
|
||||
serverAddr = cfg.ServerURL
|
||||
}
|
||||
}
|
||||
|
||||
// Default server address if not specified anywhere
|
||||
if serverAddr == "" {
|
||||
serverAddr = "localhost:2222"
|
||||
}
|
||||
|
||||
m := tui.InitialModel(*localPort, serverAddr, authToken)
|
||||
p := tea.NewProgram(m, tea.WithAltScreen())
|
||||
|
||||
if _, err := p.Run(); err != nil {
|
||||
fmt.Printf("Alas, there's been an error: %v", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user