pub struct NodeEntry {
pub id: String,
pub git: Option<String>,
pub path: Option<PathBuf>,
pub actions: Vec<ActionEntry>,
}Expand description
A single [[node]] entry — one upstream repository to manage.
git and path semantics depend on the action kind:
- For
kind = "git-clone"actions,gitis the source URL (required) andpathis the destination working tree (optional, defaults to./{node.id}). Both fields can — and typically do — coexist on the same node. - For
kind = "cargo-install"actions,path(when set) is the source crate root that wins overgit. If onlygitis set, cargo is invoked with--git <url>. If both are set,pathtakes precedence — the assumption being you’ve already cloned via a siblinggit-cloneaction.
The validator only requires that at least one of git/path
is set — the per-action interpretation above lives in the CLI’s
manifest factory, not here.
Fields§
§id: StringUnique identifier for the node within the manifest.
git: Option<String>Remote git URL. Required when Self::path is None and the
node has a git-clone action; required as the cargo-install
fallback when path is absent. URLs must use one of the
allowlisted schemes (https://, http://, ssh://, git@,
file://) and must not start with - — see the validator.
path: Option<PathBuf>Local path. For git-clone it’s the destination working tree;
for cargo-install it’s the source crate root (preferred over
git). Tilde expansion (~/...) is applied by the CLI before
the path reaches git / cargo.
actions: Vec<ActionEntry>Ordered list of actions to run for this node.