diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-04-17 01:06:13 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-04-17 02:05:59 +0900 |
| commit | 9daba6080992f7a965873936dc20a85385bbc269 (patch) | |
| tree | 8e83b6b4029e75f5a8fa6a25116fd175a6723c47 /cmd/mbf/main.go | |
| parent | bcd79a22ffb1b307879efed9ca0c7bde293af81d (diff) | |
cmd/mbf: daemon command
This services internal/pkg artifact IR with Rosa OS extensions originating from another process.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'cmd/mbf/main.go')
| -rw-r--r-- | cmd/mbf/main.go | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/cmd/mbf/main.go b/cmd/mbf/main.go index 1d260fe8..894f5a46 100644 --- a/cmd/mbf/main.go +++ b/cmd/mbf/main.go @@ -19,6 +19,7 @@ import ( "fmt" "io" "log" + "net" "os" "os/signal" "path/filepath" @@ -69,11 +70,20 @@ func main() { var ( flagQuiet bool + + addr net.UnixAddr ) c := command.New(os.Stderr, log.Printf, "mbf", func([]string) error { msg.SwapVerbose(!flagQuiet) cm.ctx, cm.msg = ctx, msg cm.base = os.ExpandEnv(cm.base) + + addr.Net = "unix" + addr.Name = os.ExpandEnv(addr.Name) + if addr.Name == "" { + addr.Name = "daemon" + } + return nil }).Flag( &flagQuiet, @@ -102,6 +112,10 @@ func main() { ), "Do not restrict networked cure containers from connecting to host "+ "abstract UNIX sockets", + ).Flag( + &addr.Name, + "socket", command.StringFlag("$MBF_DAEMON_SOCKET"), + "Pathname of socket to bind to", ) c.NewCommand( @@ -267,6 +281,19 @@ func main() { ) } + c.NewCommand( + "daemon", + "Service artifact IR with Rosa OS extensions", + func(args []string) error { + ul, err := net.ListenUnix("unix", &addr) + if err != nil { + return err + } + log.Printf("listening on pathname socket at %s", addr.Name) + return serve(ctx, log.Default(), &cm, ul) + }, + ) + { var ( flagGentoo string @@ -374,6 +401,7 @@ func main() { flagDump string flagEnter bool flagExport string + flagRemote bool ) c.NewCommand( "cure", @@ -450,6 +478,13 @@ func main() { "sh", ) }) + + case flagRemote: + pathname, err := cureRemote(ctx, &addr, rosa.Std.Load(p)) + if err == nil { + log.Println(pathname) + } + return err } }, ). @@ -467,6 +502,11 @@ func main() { &flagEnter, "enter", command.BoolFlag(false), "Enter cure container with an interactive shell", + ). + Flag( + &flagRemote, + "daemon", command.BoolFlag(false), + "Cure artifact on the daemon", ) } |
