[arch-releng] [RFC] [PATCH] [configs/releng] Add new build mode: all
Warning: this is just a DRAFT and is untested. This mode allow to build all 6 ISOs in just one step if build type is <all>. So "build.sh build all all" -> (single-i686, single-x86_64, dual) X (netinstall, core). Note that the <purge> command is executed between each build step to save space, so do not use this mode if you want to keep all temporal files in work_dir. --- README | 19 ++----------- configs/releng/build.sh | 69 +++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 63 insertions(+), 25 deletions(-) diff --git a/README b/README index 9ee367e..0e7b2b4 100644 --- a/README +++ b/README @@ -249,20 +249,5 @@ on the same build directory or use -w <work_dir> option. # git clone git://projects.archlinux.org/archiso.git # make -C archiso/archiso install -* Build netinstall and core images (32-bit) - # linux32 /usr/share/archiso/configs/releng/build.sh build single all - -* Delete uneeded files (32-bit) - # linux32 /usr/share/archiso/configs/releng/build.sh purge single - -* Build netinstall and core images (64-bit) - # /usr/share/archiso/configs/releng/build.sh build single all - -* Delete uneeded files (64-bit) - # /usr/share/archiso/configs/releng/build.sh purge single - -* Build netinstall and core images (dual 32/64 bit) - # /usr/share/archiso/configs/releng/build.sh build dual all - -* Delete uneeded files (dual 32/64 bit) - # /usr/share/archiso/configs/releng/build.sh purge dual +* Build them! + # /usr/share/archiso/configs/releng/build.sh build all all diff --git a/configs/releng/build.sh b/configs/releng/build.sh index 5c010ef..5f60cc8 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -10,6 +10,7 @@ arch=$(uname -m) work_dir=work out_dir=out verbose="" +cmd_args="" script_path=$(readlink -f ${0%/*}) @@ -296,7 +297,7 @@ _usage () echo " Clean working directory and .iso file in output directory of build <mode>" echo echo " Command options:" - echo " <mode> Valid values 'single' or 'dual'" + echo " <mode> Valid values 'single', 'dual' or 'all'" echo " <type> Valid values 'netinstall', 'core' or 'all'" exit ${1} } @@ -308,13 +309,34 @@ fi while getopts 'N:V:L:D:w:o:vh' arg; do case "${arg}" in - N) iso_name="${OPTARG}" ;; - V) iso_version="${OPTARG}" ;; - L) iso_label="${OPTARG}" ;; - D) install_dir="${OPTARG}" ;; - w) work_dir="${OPTARG}" ;; - o) out_dir="${OPTARG}" ;; - v) verbose="-v" ;; + N) + iso_name="${OPTARG}" + cmd_args+=" -N ${iso_name}" + ;; + V) + iso_version="${OPTARG}" + cmd_args+=" -V ${iso_version}" + ;; + L) + iso_label="${OPTARG}" + cmd_args+=" -L ${iso_label}" + ;; + D) + install_dir="${OPTARG}" + cmd_args+=" -D ${install_dir}" + ;; + w) + work_dir="${OPTARG}" + cmd_args+=" -w ${work_dir}" + ;; + o) + out_dir="${OPTARG}" + cmd_args+=" -o ${out_dir}" + ;; + v) + verbose="-v" + cmd_args+=" -v" + ;; h|?) _usage 0 ;; *) _msg_error "Invalid argument '${arg}'" 0 @@ -345,6 +367,11 @@ if [[ ${command_name} == "build" ]]; then command_type="${3}" fi +if [[ ${command_mode} == "all" && ${arch} != "x86_64" ]]; then + echo "This mode <all> needs to be run on x86_64" + _usage 1 +fi + if [[ ${command_mode} == "single" ]]; then work_dir=${work_dir}/${arch} fi @@ -390,6 +417,22 @@ case "${command_name}" in ;; esac ;; + all) + case "${command_type}" in + netinstall|core|all) + $0 ${cmd_args} build single ${command_type} + $0 ${cmd_args} purge single + linux32 $0 ${cmd_args} build single ${command_type} + linux32 $0 ${cmd_args} purge single + $0 ${cmd_args} build dual ${command_type} + $0 ${cmd_args} purge dual + ;; + *) + echo "Invalid build type '${command_type}'" + _usage 1 + ;; + esac + ;; *) echo "Invalid build mode '${command_mode}'" _usage 1 @@ -404,6 +447,11 @@ case "${command_name}" in dual) purge_dual ;; + all) + $0 ${cmd_args} purge single + linux32 $0 ${cmd_args} purge single + $0 ${cmd_args} purge dual + ;; *) echo "Invalid purge mode '${command_mode}'" _usage 1 @@ -418,6 +466,11 @@ case "${command_name}" in dual) clean_dual ;; + all) + $0 ${cmd_args} clean single + linux32 $0 ${cmd_args} clean single + $0 ${cmd_args} clean dual + ;; *) echo "Invalid clean mode '${command_mode}'" _usage 1 -- 1.7.9.4
On 03/16/2012 05:57 PM, Gerardo Exequiel Pozzi wrote:
Warning: this is just a DRAFT and is untested.
This mode allow to build all 6 ISOs in just one step if build type is<all>. So "build.sh build all all" -> (single-i686, single-x86_64, dual) X (netinstall, core).
Note that the<purge> command is executed between each build step to save space, so do not use this mode if you want to keep all temporal files in work_dir. --- README | 19 ++----------- configs/releng/build.sh | 69 +++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 63 insertions(+), 25 deletions(-)
diff --git a/README b/README index 9ee367e..0e7b2b4 100644 --- a/README +++ b/README @@ -249,20 +249,5 @@ on the same build directory or use -w<work_dir> option. # git clone git://projects.archlinux.org/archiso.git # make -C archiso/archiso install
-* Build netinstall and core images (32-bit) - # linux32 /usr/share/archiso/configs/releng/build.sh build single all - -* Delete uneeded files (32-bit) - # linux32 /usr/share/archiso/configs/releng/build.sh purge single - -* Build netinstall and core images (64-bit) - # /usr/share/archiso/configs/releng/build.sh build single all - -* Delete uneeded files (64-bit) - # /usr/share/archiso/configs/releng/build.sh purge single - -* Build netinstall and core images (dual 32/64 bit) - # /usr/share/archiso/configs/releng/build.sh build dual all - -* Delete uneeded files (dual 32/64 bit) - # /usr/share/archiso/configs/releng/build.sh purge dual +* Build them! + # /usr/share/archiso/configs/releng/build.sh build all all diff --git a/configs/releng/build.sh b/configs/releng/build.sh index 5c010ef..5f60cc8 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -10,6 +10,7 @@ arch=$(uname -m) work_dir=work out_dir=out verbose="" +cmd_args=""
script_path=$(readlink -f ${0%/*})
@@ -296,7 +297,7 @@ _usage () echo " Clean working directory and .iso file in output directory of build<mode>" echo echo " Command options:" - echo "<mode> Valid values 'single' or 'dual'" + echo "<mode> Valid values 'single', 'dual' or 'all'" echo "<type> Valid values 'netinstall', 'core' or 'all'" exit ${1} } @@ -308,13 +309,34 @@ fi
while getopts 'N:V:L:D:w:o:vh' arg; do case "${arg}" in - N) iso_name="${OPTARG}" ;; - V) iso_version="${OPTARG}" ;; - L) iso_label="${OPTARG}" ;; - D) install_dir="${OPTARG}" ;; - w) work_dir="${OPTARG}" ;; - o) out_dir="${OPTARG}" ;; - v) verbose="-v" ;; + N) + iso_name="${OPTARG}" + cmd_args+=" -N ${iso_name}" + ;; + V) + iso_version="${OPTARG}" + cmd_args+=" -V ${iso_version}" + ;; + L) + iso_label="${OPTARG}" + cmd_args+=" -L ${iso_label}" + ;; + D) + install_dir="${OPTARG}" + cmd_args+=" -D ${install_dir}" + ;; + w) + work_dir="${OPTARG}" + cmd_args+=" -w ${work_dir}" + ;; + o) + out_dir="${OPTARG}" + cmd_args+=" -o ${out_dir}" + ;; + v) + verbose="-v" + cmd_args+=" -v" + ;; h|?) _usage 0 ;; *) _msg_error "Invalid argument '${arg}'" 0 @@ -345,6 +367,11 @@ if [[ ${command_name} == "build" ]]; then command_type="${3}" fi
+if [[ ${command_mode} == "all"&& ${arch} != "x86_64" ]]; then + echo "This mode<all> needs to be run on x86_64" + _usage 1 +fi + if [[ ${command_mode} == "single" ]]; then work_dir=${work_dir}/${arch} fi @@ -390,6 +417,22 @@ case "${command_name}" in ;; esac ;; + all) + case "${command_type}" in + netinstall|core|all) + $0 ${cmd_args} build single ${command_type} + $0 ${cmd_args} purge single + linux32 $0 ${cmd_args} build single ${command_type} + linux32 $0 ${cmd_args} purge single + $0 ${cmd_args} build dual ${command_type} + $0 ${cmd_args} purge dual + ;; + *) + echo "Invalid build type '${command_type}'" + _usage 1 + ;; + esac + ;; *) echo "Invalid build mode '${command_mode}'" _usage 1 @@ -404,6 +447,11 @@ case "${command_name}" in dual) purge_dual ;; + all) + $0 ${cmd_args} purge single + linux32 $0 ${cmd_args} purge single + $0 ${cmd_args} purge dual + ;; *) echo "Invalid purge mode '${command_mode}'" _usage 1 @@ -418,6 +466,11 @@ case "${command_name}" in dual) clean_dual ;; + all) + $0 ${cmd_args} clean single + linux32 $0 ${cmd_args} clean single + $0 ${cmd_args} clean dual + ;; *) echo "Invalid clean mode '${command_mode}'" _usage 1 Works like a charm :)
-- Gerardo Exequiel Pozzi \cos^2\alpha + \sin^2\alpha = 1
participants (1)
-
Gerardo Exequiel Pozzi