summaryrefslogtreecommitdiff
path: root/internal/app/script.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/app/script.go')
-rw-r--r--internal/app/script.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/internal/app/script.go b/internal/app/script.go
new file mode 100644
index 0000000..2701cb2
--- /dev/null
+++ b/internal/app/script.go
@@ -0,0 +1,29 @@
+package app
+
+import (
+ "os"
+ "path/filepath"
+)
+
+// ScriptPath returns the path to the loadbars-remote.sh script.
+// It looks for scripts/loadbars-remote.sh relative to the executable, then current dir.
+func ScriptPath() string {
+ exe, err := os.Executable()
+ if err == nil {
+ dir := filepath.Dir(exe)
+ // When installed: exe is /usr/bin/loadbars, script might be /usr/share/loadbars/scripts/
+ for _, sub := range []string{"scripts/loadbars-remote.sh", "../scripts/loadbars-remote.sh", "../../scripts/loadbars-remote.sh"} {
+ p := filepath.Join(dir, sub)
+ if _, err := os.Stat(p); err == nil {
+ return p
+ }
+ }
+ }
+ // Development: run from repo root
+ if p, err := filepath.Abs("scripts/loadbars-remote.sh"); err == nil {
+ if _, err := os.Stat(p); err == nil {
+ return p
+ }
+ }
+ return "scripts/loadbars-remote.sh"
+}