package main import ( "context" "git.novox.be/novox/mesh-sdk/go/cli" "github.com/novox/mesh-host/internal/link" "github.com/novox/mesh-host/internal/meshcli" ) // serveMeshCLI answers mesh-cli on this machine for as long as this engine serves (novox/hq ADR 0272): the account // from the kernel, the line asked of the controller over the link open at the time. A socket that cannot be served // is said once, and this engine goes on applying; mesh-cli then says the engine does not answer. func serveMeshCLI(ctx context.Context, queue *link.Queue, say func(string)) { if err := meshcli.Serve(ctx, cli.Socket, forwardOver(queue), say); err != nil { say("mesh-cli is not answered on this machine: " + err.Error()) } } // forwardOver asks the controller over the queue's link, and follows the line to what came of it. func forwardOver(queue *link.Queue) meshcli.Forward { return func(ctx context.Context, asked meshcli.Asked) cli.Answer { return meshcli.AskTheController(ctx, queue.AskController, asked) } }