diff options
author | Simon Glass | 2023-03-02 17:02:42 -0700 |
---|---|---|
committer | Simon Glass | 2023-03-08 13:15:14 -0800 |
commit | e00197f92d8485a1285903227f6ee5058ee423df (patch) | |
tree | 98f8548241e5a331f8d7efef11cde9d06896216a /tools | |
parent | bd0a548ad4a155fec29473d4cc8e135832926973 (diff) |
binman: Allow preserving the output dir when replacing
Add these flags for the 'replace' subcommand too, to aid debugging.
Signed-off-by: Simon Glass <sjg@chromium.org>
44 2023 -0700
Diffstat (limited to 'tools')
-rw-r--r-- | tools/binman/binman.rst | 6 | ||||
-rw-r--r-- | tools/binman/cmdline.py | 16 | ||||
-rw-r--r-- | tools/binman/control.py | 5 |
3 files changed, 20 insertions, 7 deletions
diff --git a/tools/binman/binman.rst b/tools/binman/binman.rst index a729b5322f1..86a4b95e57d 100644 --- a/tools/binman/binman.rst +++ b/tools/binman/binman.rst @@ -1697,6 +1697,12 @@ Options: -m, --map Output a map file for the updated image +-O OUTDIR, --outdir OUTDIR + Path to directory to use for intermediate and output files + +-p, --preserve + Preserve temporary output directory even if option -O is not given + This replaces one or more entries in an existing image. See `Replacing files in an image`_. diff --git a/tools/binman/cmdline.py b/tools/binman/cmdline.py index 54926adb09f..1b7bbe80cda 100644 --- a/tools/binman/cmdline.py +++ b/tools/binman/cmdline.py @@ -73,6 +73,14 @@ def ParseArgs(argv): options provides access to the options (e.g. option.debug) args is a list of string arguments """ + def _AddPreserve(pars): + pars.add_argument('-O', '--outdir', type=str, + action='store', help='Path to directory to use for intermediate ' + 'and output files') + pars.add_argument('-p', '--preserve', action='store_true',\ + help='Preserve temporary output directory even if option -O is not ' + 'given') + if '-H' in argv: argv.append('build') @@ -127,12 +135,7 @@ controlled by a description in the board device tree.''' build_parser.add_argument('-n', '--no-expanded', action='store_true', help="Don't use 'expanded' versions of entries where available; " "normally 'u-boot' becomes 'u-boot-expanded', for example") - build_parser.add_argument('-O', '--outdir', type=str, - action='store', help='Path to directory to use for intermediate and ' - 'output files') - build_parser.add_argument('-p', '--preserve', action='store_true',\ - help='Preserve temporary output directory even if option -O is not ' - 'given') + _AddPreserve(build_parser) build_parser.add_argument('-u', '--update-fdt', action='store_true', default=False, help='Update the binman node with offset/size info') build_parser.add_argument('--update-fdt-in-elf', type=str, @@ -169,6 +172,7 @@ controlled by a description in the board device tree.''' help='Path to directory to use for input files') replace_parser.add_argument('-m', '--map', action='store_true', default=False, help='Output a map file for the updated image') + _AddPreserve(replace_parser) replace_parser.add_argument('paths', type=str, nargs='*', help='Paths within file to replace (wildcard)') diff --git a/tools/binman/control.py b/tools/binman/control.py index 2900538ffc0..bd40f074c87 100644 --- a/tools/binman/control.py +++ b/tools/binman/control.py @@ -661,7 +661,10 @@ def Binman(args): if args.cmd in ['ls', 'extract', 'replace', 'tool']: try: tout.init(args.verbosity) - tools.prepare_output_dir(None) + if args.cmd == 'replace': + tools.prepare_output_dir(args.outdir, args.preserve) + else: + tools.prepare_output_dir(None) if args.cmd == 'ls': ListEntries(args.image, args.paths) |