From d90184a7f06c277b0749833c1690a31abfdca2fd Mon Sep 17 00:00:00 2001 From: David Runge Date: Mon, 24 Aug 2020 17:53:10 +0200 Subject: Pass profile directory as parameter to mkarchiso **archiso/mkarchiso**: Change all override option parameters (i.e. `-A`, `-C`, `-D`, `-L`, `-P` and `-g`) to not directly override the global variable they are tied to, but instead using an `override_` prefixed variable. Add `_set_overrides()` to use `override_` prefixed variables (if set) to override those without a prefix. Remove `-B` (a profile directory) from the list of parameters. The profile directory is now provided as separate non-option parameter. Add a call to `_read_profile()`, `_set_overrides()` and `command_build_profile()` to the fallthrough option of the switch-case checking `command_name` - a non-option parameter to mkarchiso. This effectively provides the possibility to set the profile directory using a non-option parameter, while still maintaining compatibility to legacy named arguments used in the configs' `build.sh` scripts. Extend the warning in regards to legacy `build.sh` based commands to mkarchiso by providing an EOL with archiso v49. Change the help output to reflect the changes and further elaborate on the legacy commands used by `build.sh` scripts. Change help output to be ordered alphabetically. Add help output for `-r` and `-g` options. Call `_set_overrides()` for legacy commands that accept one or more of the overriden options (i.e. `command_init`, `command_install`, `command_prepare` and `command_iso`). Various style fixes. **configs/{baseline,releng}/build.sh**: Change call to mkarchiso to use the profile's directory as a named argument instead of an option-argument. **README.rst**: Fix documentation on how to call mkarchiso with a profile directory. Fix wording and ordering of option arguments for run_archiso documentation. Fixes #52 --- README.rst | 10 ++-- archiso/mkarchiso | 150 ++++++++++++++++++++++++++++++---------------- configs/baseline/build.sh | 2 +- configs/releng/build.sh | 2 +- 4 files changed, 105 insertions(+), 59 deletions(-) diff --git a/README.rst b/README.rst index 4c17082..c4774c0 100644 --- a/README.rst +++ b/README.rst @@ -49,7 +49,7 @@ be lost on update). The examples below will assume an unmodified profile in a system location (unless noted otherwise). -It is advised to check the help information of the **mkarchiso**: +It is advised to consult the help output of **mkarchiso**: .. code:: bash @@ -60,7 +60,7 @@ Create images with packaged archiso .. code:: bash - mkarchiso -B path/to/profile -w path/to/work_dir -o path/to/out_dir build_profile + mkarchiso -w path/to/work_dir -o path/to/out_dir path/to/profile Create images with local clone ------------------------------ @@ -69,13 +69,13 @@ Clone this repository and run: .. code:: bash - ./archiso/mkarchiso -B path/to/profile -w path/to/work_dir -o path/to/out_dir build_profile + ./archiso/mkarchiso -w path/to/work_dir -o path/to/out_dir path/to/profile Testing ======= The convenience script **run_archiso** is provided to boot into the medium using qemu. -It is advised to read its help information: +It is advised to consult its help output: .. code:: bash @@ -91,7 +91,7 @@ Run the following to boot the iso using UEFI: .. code:: bash - run_archiso -i path/to/an/arch.iso -u + run_archiso -u -i path/to/an/arch.iso The script can of course also be executed from this repository: diff --git a/archiso/mkarchiso b/archiso/mkarchiso index 2ccf7f0..0318aa6 100755 --- a/archiso/mkarchiso +++ b/archiso/mkarchiso @@ -20,17 +20,22 @@ img_name="${app_name}.iso" sfs_mode="sfs" sfs_comp="xz" gpg_key="" +override_gpg_key="" # profile defaults profile="" iso_name="${app_name}" iso_label="${app_name^^}" +override_iso_label="" iso_publisher="${app_name}" +override_iso_publisher="" iso_application="${app_name} iso" +override_iso_application="" iso_version="" install_dir="${app_name}" arch="$(uname -m)" pacman_conf="/etc/pacman.conf" +override_pacman_conf="" bootmodes=() @@ -105,36 +110,52 @@ _umount_efibootimg() { # $1: exit status number. _usage() { IFS='' read -r -d '' usagetext < - general options: - -B Directory of the archiso profile to build - -p PACKAGE(S) Package(s) to install, can be used multiple times - -C pacman configuration file. - Default: '${pacman_conf}' - -L