rune inspect
Prints exactly what rune run <name> would execute, and where every part of it came from. It
spawns nothing — not the command, and not the shell. The shell is consulted for its name only,
because that is what decides how arguments are quoted.
The report opens with the script name, then a labelled block, then the chain that produced it.
The labelled block
A label appears only when the script gave it something to say. A script with no environment of its
own prints no environment line at all, so the lines that are there are the decisions the config
made.
environment is the config's own delta. PATH and the RUNE_ variables are not listed: Rune
sets them for every script, so printing them would bury the one line that was a choice.
Chains
Every step that contributed appears under resolved through, base first, each naming the config
it came from and what it put in:
Groups
A group has no command, so it reports its members and how they are run:
Inspect a member by name to see the command it resolves to.
Lifecycle
Declared timeouts and retries print as what they do:
Defaults are left out. A report that printed SIGTERM after 5000 ms for every script would hide
the one line that was a decision.
Flags
--root inspects the root definition, ignoring anything a package narrowed.
rune inspect takes no pass-through arguments. Use rune run for that.
Exit code
0 when the script resolves. 1 when the name is unknown, with the same suggestion and listing
rune run produces.