aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra Umiker <cat@ophivana.moe>2024-10-18 22:25:09 +0900
committerOphestra Umiker <cat@ophivana.moe>2024-10-18 22:25:09 +0900
commit55bb348d5f49b3089b3475e20ee04a81f676e803 (patch)
tree801e30cc5124b38004db67c6e826c37d095a31e7
parentecce832d9360c42afcc81d5d7de53194bac48684 (diff)
state: store launch method instead of launcher path
Launcher path is constant for each launch method on the same system. Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
-rw-r--r--internal/app/seal.go9
-rw-r--r--internal/app/start.go2
-rw-r--r--internal/state/print.go4
-rw-r--r--internal/state/state.go4
4 files changed, 12 insertions, 7 deletions
diff --git a/internal/app/seal.go b/internal/app/seal.go
index f8031b71..9fd6dfb8 100644
--- a/internal/app/seal.go
+++ b/internal/app/seal.go
@@ -21,6 +21,11 @@ const (
LaunchMethodMachineCtl
)
+var method = [...]string{
+ LaunchMethodSudo: "sudo",
+ LaunchMethodMachineCtl: "systemd",
+}
+
var (
ErrConfig = errors.New("no configuration to seal")
ErrUser = errors.New("unknown user")
@@ -65,7 +70,7 @@ func (a *app) Seal(config *Config) error {
// parses launch method text and looks up tool path
switch config.Method {
- case "sudo":
+ case method[LaunchMethodSudo]:
seal.launchOption = LaunchMethodSudo
if sudoPath, err := exec.LookPath("sudo"); err != nil {
return fmsg.WrapError(ErrSudo,
@@ -73,7 +78,7 @@ func (a *app) Seal(config *Config) error {
} else {
seal.toolPath = sudoPath
}
- case "systemd":
+ case method[LaunchMethodMachineCtl]:
seal.launchOption = LaunchMethodMachineCtl
if !internal.SdBootedV {
return fmsg.WrapError(ErrSystemd,
diff --git a/internal/app/start.go b/internal/app/start.go
index ff65c0df..a0d29068 100644
--- a/internal/app/start.go
+++ b/internal/app/start.go
@@ -94,7 +94,7 @@ func (a *app) Start() error {
PID: a.cmd.Process.Pid,
Command: a.seal.command,
Capability: a.seal.et,
- Launcher: a.seal.toolPath,
+ Method: method[a.seal.launchOption],
Argv: a.cmd.Args,
Time: startTime,
}
diff --git a/internal/state/print.go b/internal/state/print.go
index fbd0110d..9859cb73 100644
--- a/internal/state/print.go
+++ b/internal/state/print.go
@@ -68,7 +68,7 @@ func (s *simpleStore) mustPrintLauncherState(w **tabwriter.Writer, now time.Time
// write header when initialising
if !verbose.Get() {
- _, _ = fmt.Fprintln(*w, "\tUID\tPID\tUptime\tEnablements\tLauncher\tCommand")
+ _, _ = fmt.Fprintln(*w, "\tUID\tPID\tUptime\tEnablements\tMethod\tCommand")
} else {
// argv is emitted in body when verbose
_, _ = fmt.Fprintln(*w, "\tUID\tPID\tArgv")
@@ -98,7 +98,7 @@ func (s *simpleStore) mustPrintLauncherState(w **tabwriter.Writer, now time.Time
if !verbose.Get() {
_, _ = fmt.Fprintf(*w, "\t%s\t%d\t%s\t%s\t%s\t%s\n",
- s.path[len(s.path)-1], state.PID, now.Sub(state.Time).Round(time.Second).String(), strings.TrimPrefix(ets.String(), ", "), state.Launcher,
+ s.path[len(s.path)-1], state.PID, now.Sub(state.Time).Round(time.Second).String(), strings.TrimPrefix(ets.String(), ", "), state.Method,
state.Command)
} else {
// emit argv instead when verbose
diff --git a/internal/state/state.go b/internal/state/state.go
index bc2be691..dde43f77 100644
--- a/internal/state/state.go
+++ b/internal/state/state.go
@@ -33,8 +33,8 @@ type State struct {
// capability enablements applied to child
Capability system.Enablements
- // resolved launcher path
- Launcher string
+ // user switch method
+ Method string
// full argv whe launching
Argv []string
// process start time