[arch-releng] [RFC] [PATCH] [configs/releng] Rework make_customize_root_image()

Gerardo Exequiel Pozzi vmlinuz386 at yahoo.com.ar
Thu Oct 25 22:29:56 EDT 2012


Using a separate shell script to customize live-enviroment,
makes much more readable code.
Move all thing except:
* Need network access (name resolving).
* Need access to some file outside chroot.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386 at yahoo.com.ar>
---
 configs/releng/build.sh                            | 32 ++++------------------
 .../releng/root-image/root/customize_root_image.sh | 25 +++++++++++++++++
 2 files changed, 31 insertions(+), 26 deletions(-)
 create mode 100755 configs/releng/root-image/root/customize_root_image.sh

diff --git a/configs/releng/build.sh b/configs/releng/build.sh
index f65a3f1..8b08d4f 100755
--- a/configs/releng/build.sh
+++ b/configs/releng/build.sh
@@ -164,34 +164,14 @@ make_isolinux() {
 make_customize_root_image() {
     if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then
         cp -af ${script_path}/root-image ${work_dir}
-        cp -aT ${work_dir}/root-image/etc/skel/ ${work_dir}/root-image/root/
-        ln -sf /usr/share/zoneinfo/UTC ${work_dir}/root-image/etc/localtime
-        chmod 750 ${work_dir}/root-image/etc/sudoers.d
-        chmod 440 ${work_dir}/root-image/etc/sudoers.d/g_wheel
-        mkdir -p ${work_dir}/root-image/etc/pacman.d
+
+        patch ${work_dir}/root-image/usr/bin/pacman-key < ${script_path}/pacman-key-4.0.3_unattended-keyring-init.patch
         wget -O ${work_dir}/root-image/etc/pacman.d/mirrorlist 'https://www.archlinux.org/mirrorlist/?country=all&protocol=http&use_mirror_status=on'
+
         lynx -dump -nolist 'https://wiki.archlinux.org/index.php/Installation_Guide?action=render' >> ${work_dir}/root-image/root/install.txt
-        sed -i "s/#Server/Server/g" ${work_dir}/root-image/etc/pacman.d/mirrorlist
-        patch ${work_dir}/root-image/usr/bin/pacman-key < ${script_path}/pacman-key-4.0.3_unattended-keyring-init.patch
-        sed -i 's/#\(en_US\.UTF-8\)/\1/' ${work_dir}/root-image/etc/locale.gen
-        sed 's#\(^ExecStart=-/sbin/agetty\)#\1 --autologin root#;
-             s#\(^Alias=getty.target.wants/\).\+#\1autologin at tty1.service#' \
-            ${work_dir}/root-image/usr/lib/systemd/system/getty at .service > ${work_dir}/root-image/etc/systemd/system/autologin at .service
-        mkarchiso ${verbose} -w "${work_dir}" -C "${pacman_conf}" -D "${install_dir}" \
-            -r 'locale-gen' \
-            run
-        mkarchiso ${verbose} -w "${work_dir}" -C "${pacman_conf}" -D "${install_dir}" \
-            -r 'usermod -s /bin/zsh root' \
-            run
-        mkarchiso ${verbose} -w "${work_dir}" -C "${pacman_conf}" -D "${install_dir}" \
-            -r 'useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /bin/zsh arch' \
-            run
-        mkarchiso ${verbose} -w "${work_dir}" -C "${pacman_conf}" -D "${install_dir}" \
-            -r 'systemctl disable getty at tty1.service || true' \
-            run
-        mkarchiso ${verbose} -w "${work_dir}" -C "${pacman_conf}" -D "${install_dir}" \
-            -r 'systemctl enable multi-user.target pacman-init.service autologin at .service dhcpcd.service || true' \
-            run
+
+        mkarchiso ${verbose} -w "${work_dir}" -C "${pacman_conf}" -D "${install_dir}" -r '/root/customize_root_image.sh' run
+        rm ${work_dir}/root-image/root/customize_root_image.sh
         : > ${work_dir}/build.${FUNCNAME}
     fi
 }
diff --git a/configs/releng/root-image/root/customize_root_image.sh b/configs/releng/root-image/root/customize_root_image.sh
new file mode 100755
index 0000000..cc47845
--- /dev/null
+++ b/configs/releng/root-image/root/customize_root_image.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+set -e -u
+
+sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen
+locale-gen
+
+ln -sf /usr/share/zoneinfo/UTC /etc/localtime
+
+usermod -s /bin/zsh root
+cp -aT /etc/skel/ /root/
+
+useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /bin/zsh arch
+
+chmod 750 /etc/sudoers.d
+chmod 440 /etc/sudoers.d/g_wheel
+
+sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist
+
+sed 's#\(^ExecStart=-/sbin/agetty\)#\1 --autologin root#;
+     s#\(^Alias=getty.target.wants/\).\+#\1autologin at tty1.service#' \
+     /usr/lib/systemd/system/getty at .service > /etc/systemd/system/autologin at .service
+
+systemctl disable getty at tty1.service
+systemctl enable multi-user.target pacman-init.service autologin at .service dhcpcd.service
-- 
1.8.0



More information about the arch-releng mailing list