pub fn derive_declared_needs(
tools: &[DeclaredToolNeeds],
shell_allow: &[String],
capsule_writable: &[&Path],
pinned: &[ResolvedPinnedProgram],
) -> Vec<ResolvedProgramNeeds>Expand description
The needs tools declare for the programs shell_allow grants, resolved against this host.
Only a tool whose origin is LockOrigin::Operator contributes, and only for a program key
equal to an entry of shell_allow. One element per (artifact, program) with at least one
need, tools in the order given and programs in declaration order. capsule_writable are the
trees the capsule’s commands can write (crate::interpreter_runtime::capsule_writable_roots).
pinned is staging’s source choice for pinned program downloads
(crate::pinned_programs::derive_pinned_programs): a program is looked up on PATH and then
in each pinned copy’s bin/ folder, and a need resolving at or under a pinned copy’s store
entry is granted, though that entry lies under the home folder.
Reads the filesystem only, runs nothing, and fails nothing. Off Linux this returns nothing.