aboutsummaryrefslogtreecommitdiffhomepage
path: root/state.go
diff options
context:
space:
mode:
Diffstat (limited to 'state.go')
-rw-r--r--state.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/state.go b/state.go
new file mode 100644
index 00000000..2e68ddcc
--- /dev/null
+++ b/state.go
@@ -0,0 +1,42 @@
+package main
+
+import (
+ "flag"
+ "fmt"
+ "git.ophivana.moe/cat/fortify/internal/state"
+ "os"
+ "text/tabwriter"
+)
+
+var (
+ stateActionEarly [2]bool
+)
+
+func init() {
+ flag.BoolVar(&stateActionEarly[0], "state", false, "print state information of active launchers")
+ flag.BoolVar(&stateActionEarly[1], "state-current", false, "print state information of active launchers for the specified user")
+}
+
+// tryState is called after app initialisation
+func tryState() {
+ var w *tabwriter.Writer
+
+ switch {
+ case stateActionEarly[0]:
+ state.MustPrintLauncherStateGlobal(&w, a.RunDir())
+ case stateActionEarly[1]:
+ state.MustPrintLauncherState(&w, a.RunDir(), a.Uid)
+ default:
+ return
+ }
+
+ if w != nil {
+ if err := w.Flush(); err != nil {
+ fmt.Println("warn: error formatting output:", err)
+ }
+ } else {
+ fmt.Println("No information available")
+ }
+
+ os.Exit(0)
+}