From da160fbdfb30a55a4d617553baeb5b0a5a9d5fb8 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Thu, 12 Feb 2026 09:33:49 +0200 Subject: Rename hexai-lsp command to hexai-lsp-server Amp-Thread-ID: https://ampcode.com/threads/T-019c50bc-2906-77db-a31e-0d553338d99b Co-authored-by: Amp --- cmd/hexai-lsp-server/main.go | 52 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 cmd/hexai-lsp-server/main.go (limited to 'cmd/hexai-lsp-server/main.go') diff --git a/cmd/hexai-lsp-server/main.go b/cmd/hexai-lsp-server/main.go new file mode 100644 index 0000000..c8cdd8f --- /dev/null +++ b/cmd/hexai-lsp-server/main.go @@ -0,0 +1,52 @@ +// Summary: Hexai LSP entrypoint; parses flags and delegates to internal/hexailsp. +package main + +import ( + "flag" + "fmt" + "log" + "os" + "strings" + + "codeberg.org/snonux/hexai/internal" + "codeberg.org/snonux/hexai/internal/appconfig" + "codeberg.org/snonux/hexai/internal/hexailsp" +) + +func main() { + defaultLog := defaultLogPath() + logPath := flag.String("log", defaultLog, "path to log file (optional)") + defaultCfg := defaultConfigPath() + configPath := flag.String("config", "", fmt.Sprintf("path to config file (default: %s)", defaultCfg)) + showVersion := flag.Bool("version", false, "print version and exit") + flag.Parse() + if *showVersion { + log.Println(internal.Version) + return + } + + path := strings.TrimSpace(*configPath) + if err := hexailsp.RunWithConfig(*logPath, path, os.Stdin, os.Stdout, os.Stderr); err != nil { + log.Fatalf("server error: %v", err) + } +} + +func defaultConfigPath() string { + path, err := appconfig.ConfigPath() + if err != nil { + return "$XDG_CONFIG_HOME/hexai/config.toml" + } + return path +} + +// defaultLogPath returns the default LSP log file path in the state directory. +// Falls back to /tmp if state directory cannot be determined. +// defaultLogPath returns the default LSP log file path in the state directory. +// Panics if state directory cannot be created. +func defaultLogPath() string { + stateDir, err := appconfig.StateDir() + if err != nil { + panic(fmt.Sprintf("cannot create state directory: %v", err)) + } + return fmt.Sprintf("%s/hexai-lsp-server.log", stateDir) +} -- cgit v1.2.3