mesh/delivery-group group feat/774-l3-reland rejected: composed together: the checker's verdict at the members' heads (b48c90fea31f): integration: mesh-self-ch…
mesh/delivery closed: a newer head of the same pull request
mesh/check failed: integration: mesh-self-check/cmd/mesh-self-check.TestTheSelfCheckWholeRunsOnTheBus: the run answered {Run:doctor-1793351737-1 At:20…
One commit with exactly the tree of the reviewed head35b4509c0a, on main12c2574c9d, so two compiled programs added and removed on the branch leave no trace in history (issue 1577).
40 lines
1.7 KiB
Go
40 lines
1.7 KiB
Go
// The artifact-store-tools module's Go bundle (novox/hq ADR 0251 §1–3, ADR 0571 clause 2, to-be 51): a process the
|
||
// node's runtime launches and speaks MCP over stdio to. It says what the artifact store holds — its repositories, its
|
||
// size, and what the mesh keeps of each manifest — read from the store's own files through the store's own container,
|
||
// and it holds the seat mesh-artifact-sweep: the keep set, the sweep at each build's end once the controller's lease names
|
||
// no controller, and S25's image-missing.
|
||
//
|
||
// **A module beside the store, not the store's own.** A module that provides the artifact store cannot also build an
|
||
// artifact: building publishes to the store, so the store would be needed to create itself. So these tools are a
|
||
// second module, assigned to the machine that holds the store. stdout is the protocol; what this bundle says, it says
|
||
// on stderr.
|
||
package main
|
||
|
||
import (
|
||
"fmt"
|
||
"os"
|
||
"time"
|
||
|
||
stdio "git.novox.be/novox/mesh-sdk/go"
|
||
"git.novox.be/novox/mesh-sdk/go/handacts"
|
||
)
|
||
|
||
func logf(format string, a ...any) { fmt.Fprintf(os.Stderr, format+"\n", a...) }
|
||
|
||
func main() {
|
||
s := &Store{
|
||
Container: os.Getenv("MESH_ARTIFACT_STORE_CONTAINER"),
|
||
Run: ExecRunner,
|
||
UID: os.Getuid(),
|
||
}
|
||
h := &Holder{Bus: runtimeBus{}, Door: DoorAt(os.Getenv("MESH_ARTIFACT_STORE_ADDRESS_FILE")), Listed: s.View,
|
||
Now: time.Now, Logf: logf}
|
||
h.Acts = handacts.Recorder{Ask: stdio.Ask, LeaseAway: h.LeaseAway}
|
||
go follow(h)
|
||
// An empty name serves as the module the runtime names (MESH_SERVED_MODULE): artifact-store-tools.
|
||
if err := stdio.Serve("", append(Tools(s, h, &Catalogue{Ask: stdio.Ask}), SeatTools(h, s)...)); err != nil {
|
||
fmt.Fprintln(os.Stderr, err)
|
||
os.Exit(1)
|
||
}
|
||
}
|