summaryrefslogtreecommitdiff
path: root/Magefile.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-10 22:41:47 +0300
committerPaul Buetow <paul@buetow.org>2026-04-10 22:41:47 +0300
commitbd749f8e9a0eeaa5578a368996f7b93955580a39 (patch)
tree5d2e45a7a155cdecbbc7ee864a35e4818277714e /Magefile.go
parentdc71be943e25087905b2b9a4fec2fcf6b6f9925f (diff)
task 20: hide do info UUID unless HEXAI_DEBUG is set
Diffstat (limited to 'Magefile.go')
-rw-r--r--Magefile.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/Magefile.go b/Magefile.go
index fb19689..e5d744d 100644
--- a/Magefile.go
+++ b/Magefile.go
@@ -7,6 +7,7 @@ import (
"fmt"
"io"
"os"
+ "os/exec"
"path/filepath"
"regexp"
"strconv"
@@ -131,9 +132,41 @@ func Install() error {
return err
}
}
+ return installFishCompletion(filepath.Join(bin, "do"))
+}
+
+func installFishCompletion(doBin string) error {
+ fishConfigDir, err := resolveFishConfigDir()
+ if err != nil {
+ return err
+ }
+ completionsDir := filepath.Join(fishConfigDir, "completions")
+ if err := os.MkdirAll(completionsDir, 0o755); err != nil {
+ return err
+ }
+ out, err := exec.Command(doBin, "fish").Output()
+ if err != nil {
+ return fmt.Errorf("generate fish completion: %w", err)
+ }
+ dst := filepath.Join(completionsDir, "do.fish")
+ if err := os.WriteFile(dst, out, 0o644); err != nil {
+ return err
+ }
+ fmt.Printf("installed %s\n", dst)
return nil
}
+func resolveFishConfigDir() (string, error) {
+ if xdg := os.Getenv("XDG_CONFIG_HOME"); xdg != "" {
+ return filepath.Join(xdg, "fish"), nil
+ }
+ home, err := os.UserHomeDir()
+ if err != nil {
+ return "", fmt.Errorf("resolve home: %w", err)
+ }
+ return filepath.Join(home, ".config", "fish"), nil
+}
+
// RunTmuxAction runs the hexai-tmux-action TUI via go run (reads stdin).
func RunTmuxAction() error {
printCoverage()