[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
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 :)
participants (1)
-
Gerardo Exequiel Pozzi