From bf9512733267e2781cf50070a6606d8f1a8bf5d9 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Tue, 18 Feb 2025 22:36:45 +0900 Subject: [PATCH] fst: move App interface declaration Signed-off-by: Ophestra --- fst/app.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 fst/app.go diff --git a/fst/app.go b/fst/app.go new file mode 100644 index 0000000..31ba484 --- /dev/null +++ b/fst/app.go @@ -0,0 +1,33 @@ +package fst + +import "context" + +type App interface { + // ID returns a copy of App's unique ID. + ID() ID + // Run sets up the system and runs the App. + Run(ctx context.Context, rs *RunState) error + + Seal(config *Config) error + String() string +} + +// RunState stores the outcome of a call to [App.Run]. +type RunState struct { + // Start is true if fsu is successfully started. + Start bool + // ExitCode is the value returned by shim. + ExitCode int + // WaitErr is error returned by the underlying wait syscall. + WaitErr error +} + +// Paths contains environment-dependent paths used by fortify. +type Paths struct { + // path to shared directory e.g. /tmp/fortify.%d + SharePath string `json:"share_path"` + // XDG_RUNTIME_DIR value e.g. /run/user/%d + RuntimePath string `json:"runtime_path"` + // application runtime directory e.g. /run/user/%d/fortify + RunDirPath string `json:"run_dir_path"` +}