Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Accept but ignore the old --squashfs-only argument
01dd27a broke lorax due to some unspecified behavior in argparse when two different arguments write to the same target. It added a --rootfs-type argument with a string value and a default of "squashfs", and changed --squashfs-only to write the value "squashfs" to the same target (rootfs_type) if passed. Unfortunately, if you do this *with --squashfs-only first and --rootfs-type second*, then if neither --squashfs-only nor --rootfs-type is passed, the value of rootfs_type in the resulting args dict is None, not "squashfs" as expected. If you reverse the order of the args - so --rootfs-type is first and --squashfs-only is second - then if neither arg is passed, the value of rootfs_type comes out as "squashfs" as expected. So we *could* just swap the args in both places. However, this strikes me as fragile as it seems like this behaviour is not defined and could change unexpectedly. It seems safer, to me, to accept --squashfs-only but simply ignore it (since the default value of --rootfs-type is squashfs anyway, and if someone were to specify both, I think it's sane for --rootfs-type to 'win'). Weirdly, argparse doesn't seem to have a built-in way to specify a completely no-op argument, so let's just keep it as `store_true` like it used to be, and simply never use the value. Alternatively we could use parse_known_args instead of parse_args and then check that the only unknown arg was squashfs-only, but we'd have to do that in multiple places, this seems a bit simpler. Signed-off-by: Adam Williamson <[email protected]>
- Loading branch information