aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/system
diff options
context:
space:
mode:
Diffstat (limited to 'internal/system')
-rw-r--r--internal/system/retrieve.go28
-rw-r--r--internal/system/value.go17
2 files changed, 45 insertions, 0 deletions
diff --git a/internal/system/retrieve.go b/internal/system/retrieve.go
new file mode 100644
index 00000000..d9f0e3dd
--- /dev/null
+++ b/internal/system/retrieve.go
@@ -0,0 +1,28 @@
+package system
+
+import (
+ "fmt"
+ "os"
+ "path"
+ "strconv"
+)
+
+func Retrieve(verbose bool) {
+ if V != nil {
+ panic("system info retrieved twice")
+ }
+
+ v := &Values{Share: path.Join(os.TempDir(), "fortify."+strconv.Itoa(os.Geteuid())), Verbose: verbose}
+
+ if r, ok := os.LookupEnv(xdgRuntimeDir); !ok {
+ fmt.Println("Env variable", xdgRuntimeDir, "unset")
+
+ // too early for fatal
+ os.Exit(1)
+ } else {
+ v.Runtime = r
+ v.RunDir = path.Join(v.Runtime, "fortify")
+ }
+
+ V = v
+}
diff --git a/internal/system/value.go b/internal/system/value.go
new file mode 100644
index 00000000..aa4da518
--- /dev/null
+++ b/internal/system/value.go
@@ -0,0 +1,17 @@
+package system
+
+const (
+ xdgRuntimeDir = "XDG_RUNTIME_DIR"
+)
+
+type Values struct {
+ Share string
+ Runtime string
+ RunDir string
+ Verbose bool
+}
+
+var (
+ V *Values
+ MethodFlags [2]bool
+)