On Thu, Aug 03, 2023 at 03:52:17PM +0200, Ahmad Fatoum wrote: > Dry runs are quite useful for debugging or for time measurement, but so > far they weren't useful with scripts as they just did a very early exit. > > This is understandable as scripts don't necessarily observe the > convention that everything done before the dry run should not have an > impact on later boot runs. For the cases, where the bootscript is vetted > to behave properly under a dry run, support specifing dryrun twice, so > the script is executed, but the automatic bootm afterwards isn't. > > Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> > --- > commands/boot.c | 4 ++-- > common/boot.c | 6 +++--- > 2 files changed, 5 insertions(+), 5 deletions(-) Applied, thanks Sascha > > diff --git a/commands/boot.c b/commands/boot.c > index 5fd59f8642f8..e4699520e8f5 100644 > --- a/commands/boot.c > +++ b/commands/boot.c > @@ -44,7 +44,7 @@ static int do_boot(int argc, char *argv[]) > do_list = 1; > break; > case 'd': > - dryrun = 1; > + dryrun++; > break; > case 'M': > /* To simplify scripting, an empty string is treated as 1 */ > @@ -145,7 +145,7 @@ BAREBOX_CMD_HELP_TEXT("one succeeds.") > BAREBOX_CMD_HELP_TEXT("") > BAREBOX_CMD_HELP_TEXT("Options:") > BAREBOX_CMD_HELP_OPT ("-v","Increase verbosity") > -BAREBOX_CMD_HELP_OPT ("-d","Dryrun. See what happens but do no actually boot") > +BAREBOX_CMD_HELP_OPT ("-d","Dryrun. See what happens but do no actually boot (pass twice to run scripts)") > BAREBOX_CMD_HELP_OPT ("-l","List available boot sources") > BAREBOX_CMD_HELP_OPT ("-m","Show a menu with boot options") > BAREBOX_CMD_HELP_OPT ("-M INDEX","Show a menu with boot options with entry INDEX preselected") > diff --git a/common/boot.c b/common/boot.c > index 4edea682219b..76bf52b52902 100644 > --- a/common/boot.c > +++ b/common/boot.c > @@ -75,7 +75,7 @@ static int bootscript_boot(struct bootentry *entry, int verbose, int dryrun) > > struct bootm_data data = {}; > > - if (dryrun) { > + if (dryrun == 1) { > printf("Would run %s\n", bs->scriptpath); > return 0; > } > @@ -94,8 +94,8 @@ static int bootscript_boot(struct bootentry *entry, int verbose, int dryrun) > > if (verbose) > data.verbose = verbose; > - if (dryrun) > - data.dryrun = dryrun; > + if (dryrun >= 2) > + data.dryrun = dryrun - 1; > > return bootm_boot(&data); > } > -- > 2.39.2 > > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |