Ophestra Umiker
8bdae74ebe
State query command has been moved to main where it belongs, "system" information are now fetched in app.New and stored in *App with accessors for relevant values. Exit (cleanup-related) functions are separated into its dedicated "final" package. Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
43 lines
857 B
Go
43 lines
857 B
Go
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)
|
|
}
|