aboutsummaryrefslogtreecommitdiffhomepage
path: root/cmd/fpkg/main.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2024-12-26 13:21:49 +0900
committerOphestra <cat@gensokyo.uk>2024-12-26 13:21:49 +0900
commite0e2f40e84a5a63a2ea220a0974ac56e6a52c48a (patch)
treeb72d376060f6f01235924dbf8d3a03f9f21ed08f /cmd/fpkg/main.go
parentbf8094c6cad12926e65aaa78d02ef414d3ece3da (diff)
cmd/fpkg: app bundle helper
This helper program creates fortify configuration for running an application bundle. The activate action wraps a home-manager activation package and ensures each generation gets activated once. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'cmd/fpkg/main.go')
-rw-r--r--cmd/fpkg/main.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/cmd/fpkg/main.go b/cmd/fpkg/main.go
new file mode 100644
index 00000000..f348cb5e
--- /dev/null
+++ b/cmd/fpkg/main.go
@@ -0,0 +1,48 @@
+package main
+
+import (
+ "flag"
+ "os"
+
+ "git.gensokyo.uk/security/fortify/internal/fmsg"
+)
+
+const shell = "/run/current-system/sw/bin/bash"
+
+func init() {
+ if err := os.Setenv("SHELL", shell); err != nil {
+ fmsg.Fatalf("cannot set $SHELL: %v", err)
+ }
+}
+
+var (
+ flagVerbose bool
+)
+
+func init() {
+ flag.BoolVar(&flagVerbose, "v", false, "Verbose output")
+}
+
+func main() {
+ fmsg.SetPrefix("fpkg")
+
+ flag.Parse()
+ fmsg.SetVerbose(flagVerbose)
+
+ args := flag.Args()
+ if len(args) < 1 {
+ fmsg.Fatal("invalid argument")
+ }
+
+ switch args[0] {
+ case "install":
+ actionInstall(args[1:])
+ case "start":
+ actionStart(args[1:])
+
+ default:
+ fmsg.Fatal("invalid argument")
+ }
+
+ fmsg.Exit(0)
+}