diff options
Diffstat (limited to 'internal/system')
| -rw-r--r-- | internal/system/retrieve.go | 28 | ||||
| -rw-r--r-- | internal/system/value.go | 17 |
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 +) |
