aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Landa <stylesuxx@gmail.com>2016-03-05 14:01:44 +0100
committerChris Landa <stylesuxx@gmail.com>2016-03-05 14:01:44 +0100
commitf13fca1705c41ee32a26d87588bee44a59c7d82a (patch)
tree9aa0d5bed7974ba7624807bcab3f875e56b14741
parent57c039de88cb94968c4ae6417c4ce42ce23118ea (diff)
downloadrpi2-gen-image-f13fca1705c41ee32a26d87588bee44a59c7d82a.tar.gz
rpi2-gen-image-f13fca1705c41ee32a26d87588bee44a59c7d82a.tar.bz2
rpi2-gen-image-f13fca1705c41ee32a26d87588bee44a59c7d82a.zip
Added functionality to run custom scripts after base bootstrap
-rw-r--r--README.md3
-rwxr-xr-xrpi2-gen-image.sh8
2 files changed, 11 insertions, 0 deletions
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