From f13fca1705c41ee32a26d87588bee44a59c7d82a 2016-03-05 13:01:44 From: Chris Landa Date: 2016-03-05 13:01:44 Subject: [PATCH] Added functionality to run custom scripts after base bootstrap --- diff --git a/README.md b/README.md index 987ce62..0c020b9 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,9 @@ Enable iptables IPv4/IPv6 firewall. Simplified ruleset: Allow all outgoing conne ##### `ENABLE_HARDNET`=false Enable IPv4/IPv6 network stack hardening settings. +##### `CHROOT_SCRIPTS`="" +Path to a directory with scripts that should be run in the chroot before the image is finally built. Every executable file in this direcory is run in lexicographical order. + ## Logging of the bootstrapping process All information related to the bootstrapping process and the commands executed by the `rpi2-gen-image.sh` script can easily be saved into a logfile. The common shell command `script` can be used for this purpose: diff --git a/rpi2-gen-image.sh b/rpi2-gen-image.sh index ff677d2..ebf4e82 100755 --- a/rpi2-gen-image.sh +++ b/rpi2-gen-image.sh @@ -74,6 +74,7 @@ ENABLE_IPTABLES=${ENABLE_IPTABLES:=false} # Image chroot path R=${BUILDDIR}/chroot +CHROOT_SCRIPTS=${CHROOT_SCRIPTS:=""} # Packages required for bootstrapping REQUIRED_PACKAGES="debootstrap debian-archive-keyring qemu-user-static binfmt-support dosfstools rsync bmap-tools whois git-core" @@ -813,6 +814,13 @@ LANG=C chroot $R apt-get -y clean LANG=C chroot $R apt-get -y autoclean LANG=C chroot $R apt-get -y autoremove +# Invoke custom scripts +if [ -n "${CHROOT_SCRIPTS}" ]; then + cp -r "${CHROOT_SCRIPTS}" "${R}/chroot_scripts" + LANG=C chroot $R bash -c 'for SCRIPT in /chroot_scripts/*; do if [ -f $SCRIPT -a -x $SCRIPT ]; then $SCRIPT; fi done;' + rm -rf "${R}/chroot_scripts" +fi + # Unmount mounted filesystems umount -l $R/proc umount -l $R/sys