aboutsummaryrefslogtreecommitdiffhomepage
path: root/print.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-01-01 19:28:58 +0900
committerOphestra <cat@gensokyo.uk>2025-01-01 19:35:50 +0900
commit35b714231768d11b82e575701ca5c7a081e2c542 (patch)
tree2cb3550269f130c1643a5f07707ecf20d9c5ff5c /print.go
parentc4d6651cae0fb1869ee65da0b66baae3828d73a2 (diff)
fortify: show system info when instance is not specified
This contains useful information not obtainable by external tools. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'print.go')
-rw-r--r--print.go33
1 files changed, 28 insertions, 5 deletions
diff --git a/print.go b/print.go
index 702f35ea..e78861fa 100644
--- a/print.go
+++ b/print.go
@@ -16,14 +16,37 @@ import (
"git.gensokyo.uk/security/fortify/internal/state"
)
-func printShow(instance *state.State, config *fst.Config, short bool) {
+func printShowSystem(short bool) {
+ info := new(fst.Info)
+
+ // get fid by querying uid of aid 0
+ if uid, err := os.Uid(0); err != nil {
+ fmsg.Fatalf("cannot obtain uid from fsu: %v", err)
+ } else {
+ info.User = (uid / 10000) - 100
+ }
+
+ if flagJSON {
+ printJSON(info)
+ return
+ }
+
+ w := tabwriter.NewWriter(direct.Stdout, 0, 1, 4, ' ', 0)
+
+ fmt.Fprintf(w, "User:\t%d\n", info.User)
+
+ if err := w.Flush(); err != nil {
+ fmsg.Fatalf("cannot flush tabwriter: %v", err)
+ }
+}
+
+func printShowInstance(instance *state.State, config *fst.Config, short bool) {
if flagJSON {
- v := any(config)
if instance != nil {
- v = instance
+ printJSON(instance)
+ } else {
+ printJSON(config)
}
-
- printJSON(v)
return
}