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

Reply via email to