~/bend-docscommunity

src/pub/run.bend fails

raw source on the hub · import 0x74799d3f846634a3d7461d4336d7c9d4/src/pub/run.bend as Run

pub/run: the interpreter for ez publish. It reads the directory the project is in and the ledger's text into a World, then loops: it asks the planner (pub/plan.bend) what is still open, answers each question, and adds the answers to the World, until nothing is left to ask. Then it runs the planner's plan with the lock's effect runner (Run.exec.plan), which prints what a publish that agreed says, or exits 1 with the reason.

What git says of the project and a file's text are answered as the tool commands answer them (ToolRun.answer). What git tracks is git ls-files -v in the project, with paths written as they are rather than quoted. The upload is bend <entry> --publish, followed by the <name>@<version> the planner put in the question when the ledger names one, with the project's packages on BEND_LIB, the way every other bend ez starts has them; the planner asks for it last, once every other check has passed. Just before it runs, the line the question carries, the hub description, goes to stderr, where bend's own notices go, so stdout stays the hash and the import line. Before that, the lock is read as a file, and a url under the hub is asked for with the lock's own GET (Web.get), whose answer is a status line and the text: whether the hub answered 200, and the body or why not. It decides nothing; that it reads and executes faithfully is EZ-TRUST-2.

11 imports
import Base
import 0xabe575924687afad4cee1a2c1194d639/main.bend as R
import ../io/file.bend as F
import ../lock/run.bend as Run
import ../tool/run.bend as ToolRun
import ../tool/world.bend as TW
import ../hub/hub.bend as Web
import ../hub/get.bend as Net
import ../share/env.bend as Env
import ./world.bend as PW
import ./plan.bend as PP