1
0
forked from rosa/hakurei

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>
This commit is contained in:
2026-04-17 01:06:13 +09:00
parent bcd79a22ff
commit 9daba60809
3 changed files with 316 additions and 0 deletions

View File

@@ -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",
)
}