foundry-rs/foundry

Add a way to distinguish whether the user explicitly ran `forge build` or it is part of a process like `forge test`

mgiagante opened this issue · 2 comments

Component

Forge

Describe the feature you would like

Referring to #9325 (comment)

Sometimes, it's useful to be able to act based on whether the subcommand was explicitly called, or it triggered as part of another process.

For instance, when running forge test, this triggers forge build but the user didn't explicitly run it.

In the case above, this would be useful to adjust the output of the command, since a low verbosity like -v might be ok if forge build was explicitly called, but a higher level like -vvvvv would be more suitable for when the output is triggered by forge test.

Additional context

No response

I think we already have this

fn init_execution_context(subcommand: &ForgeSubcommand) {
let context = match subcommand {
ForgeSubcommand::Test(_) => ForgeContext::Test,
ForgeSubcommand::Coverage(_) => ForgeContext::Coverage,
ForgeSubcommand::Snapshot(_) => ForgeContext::Snapshot,
ForgeSubcommand::Script(cmd) => {
if cmd.broadcast {
ForgeContext::ScriptBroadcast
} else if cmd.resume {
ForgeContext::ScriptResume
} else {
ForgeContext::ScriptDryRun
}
}
_ => ForgeContext::Unknown,
};
set_execution_context(context);

Hi @mgiagante thanks for opening this, I'll convert this ticket into a note in the #8794 meta-ticket