diff options
| author | Jeff Halter <868228+jhalter@users.noreply.github.com> | 2024-06-15 11:13:16 -0700 |
|---|---|---|
| committer | Jeff Halter <868228+jhalter@users.noreply.github.com> | 2024-06-15 11:13:16 -0700 |
| commit | 95159e5585762c06c654945070ba54262b7dcec9 (patch) | |
| tree | 23609018c1460b056ce22067290ea12ee851d483 /cmd | |
| parent | a6216dd89252fa01dc176f98f1e4ecfd3f637566 (diff) | |
Refactoring and cleanup
* Split CLI client into separate project
* Convert more functions to follow common Golang idioms e.g io.Reader, io.Writer
* Use ldflags for versioning
* Misc cleanup and simplification
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/mobius-hotline-client/main.go | 87 | ||||
| -rw-r--r-- | cmd/mobius-hotline-client/mobius-client-config.yaml | 8 | ||||
| -rw-r--r-- | cmd/mobius-hotline-server/main.go | 12 |
3 files changed, 9 insertions, 98 deletions
diff --git a/cmd/mobius-hotline-client/main.go b/cmd/mobius-hotline-client/main.go deleted file mode 100644 index 20bd7f2..0000000 --- a/cmd/mobius-hotline-client/main.go +++ /dev/null @@ -1,87 +0,0 @@ -package main - -import ( - "context" - "flag" - "fmt" - "github.com/jhalter/mobius/hotline" - "github.com/rivo/tview" - "log/slog" - "os" - "os/signal" - "runtime" - "syscall" -) - -var logLevels = map[string]slog.Level{ - "debug": slog.LevelDebug, - "info": slog.LevelInfo, - "warn": slog.LevelWarn, - "error": slog.LevelError, -} - -func main() { - _, cancelRoot := context.WithCancel(context.Background()) - - sigChan := make(chan os.Signal, 1) - signal.Notify(sigChan, syscall.SIGTERM, syscall.SIGINT, os.Interrupt) - - configDir := flag.String("config", defaultConfigPath(), "Path to config root") - version := flag.Bool("version", false, "print version and exit") - logLevel := flag.String("log-level", "info", "Log level") - logFile := flag.String("log-file", "", "output logs to file") - - flag.Parse() - - if *version { - fmt.Printf("v%s\n", hotline.VERSION) - os.Exit(0) - } - - // init DebugBuffer - db := &hotline.DebugBuffer{ - TextView: tview.NewTextView(), - } - - // Add file logger if optional log-file flag was passed - if *logFile != "" { - f, err := os.OpenFile(*logFile, - os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) - defer func() { _ = f.Close() }() - if err != nil { - panic(err) - } - } - - logger := slog.New(slog.NewTextHandler(db, &slog.HandlerOptions{Level: logLevels[*logLevel]})) - logger.Info("Started Mobius client", "Version", hotline.VERSION) - - go func() { - sig := <-sigChan - logger.Info("Stopping client", "signal", sig.String()) - cancelRoot() - }() - - client := hotline.NewUIClient(*configDir, logger) - client.DebugBuf = db - client.UI.Start() -} - -func defaultConfigPath() (cfgPath string) { - switch runtime.GOOS { - case "windows": - cfgPath = "mobius-client-config.yaml" - case "darwin": - if _, err := os.Stat("/usr/local/etc/mobius-client-config.yaml"); err == nil { - cfgPath = "/usr/local/etc/mobius-client-config.yaml" - } else if _, err := os.Stat("/opt/homebrew/etc/mobius-client-config.yaml"); err == nil { - cfgPath = "/opt/homebrew/etc/mobius-client-config.yaml" - } - case "linux": - cfgPath = "/usr/local/etc/mobius-client-config.yaml" - default: - fmt.Printf("unsupported OS") - } - - return cfgPath -} diff --git a/cmd/mobius-hotline-client/mobius-client-config.yaml b/cmd/mobius-hotline-client/mobius-client-config.yaml deleted file mode 100644 index b1edb40..0000000 --- a/cmd/mobius-hotline-client/mobius-client-config.yaml +++ /dev/null @@ -1,8 +0,0 @@ -Username: unnamed -IconID: 414 -Tracker: hltracker.com:5498 -Bookmarks: - - Name: The Mobius Strip - Addr: trtphotl.com:5500 - Login: guest - Password: ""
\ No newline at end of file diff --git a/cmd/mobius-hotline-server/main.go b/cmd/mobius-hotline-server/main.go index c027d18..8e66938 100644 --- a/cmd/mobius-hotline-server/main.go +++ b/cmd/mobius-hotline-server/main.go @@ -28,6 +28,12 @@ var logLevels = map[string]slog.Level{ "error": slog.LevelError, } +var ( + version = "dev" + commit = "none" + date = "unknown" +) + func main() { ctx, cancel := context.WithCancel(context.Background()) @@ -50,7 +56,7 @@ func main() { basePort := flag.Int("bind", defaultPort, "Base Hotline server port. File transfer port is base port + 1.") statsPort := flag.String("stats-port", "", "Enable stats HTTP endpoint on address and port") configDir := flag.String("config", defaultConfigPath(), "Path to config root") - version := flag.Bool("version", false, "print version and exit") + printVersion := flag.Bool("version", false, "print version and exit") logLevel := flag.String("log-level", "info", "Log level") logFile := flag.String("log-file", "", "Path to log file") @@ -58,8 +64,8 @@ func main() { flag.Parse() - if *version { - fmt.Printf("v%s\n", hotline.VERSION) + if *printVersion { + fmt.Printf("mobius-hotline-server %s, commit %s, built at %s", version, commit, date) os.Exit(0) } |