From 413b2fd55202f3fa5880d5a42994220c74e84e60 Mon Sep 17 00:00:00 2001 From: Simo Leone Date: Fri, 12 Oct 2007 02:48:16 -0500 Subject: Implemented a simple addon mechanism If asked to do so, mkarchiso simply copies a directory full of addons to the iso root. On boot, after union-mounting /real_root, the archiso hook will look for and source an addon config file. This file is a plain old bash script, which makes it quite flexible. The addon config should be written to take care of any mounting that needs to be done, an example of typical tasks is also included. Signed-off-by: Simo Leone --- mkarchiso | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'mkarchiso') diff --git a/mkarchiso b/mkarchiso index c158ef9..3703b0b 100755 --- a/mkarchiso +++ b/mkarchiso @@ -6,6 +6,7 @@ PKGFILE="$(pwd)/packages.list" PKGLIST="" QUIET="y" FORCE="n" +ADDON_DIR="" command_name="" work_dir="" @@ -22,6 +23,7 @@ usage () echo " -i CPIO_CONFIG Use CONFIG file for mkinitcpio. default: ${CPIOCONFIG}" echo " -P PKGFILE File with list of packages to install. default: ${PKGFILE}" echo " -p PACKAGE Additional package to install, can be used multiple times" + echo " -a ADDON_DIR Use addons from DIR. default: none" echo " -v Enable verbose output." echo " -h This message." echo " commands:" @@ -32,11 +34,12 @@ usage () exit $1 } -while getopts 'i:P:p:fvh' arg; do +while getopts 'i:P:p:a:fvh' arg; do case "${arg}" in i) CPIOCONFIG="${OPTARG}" ;; P) PKGFILE="${OPTARG}" ;; p) PKGLIST="${PKGLIST} ${OPTARG}" ;; + a) ADDON_DIR="${OPTARG}" ;; f) FORCE="y" ;; v) QUIET="n" ;; h|?) usage 0 ;; @@ -172,6 +175,12 @@ if [ "${command_name}" = "install" -o "${command_name}" = "all" ]; then rm -rf "${isoroot}/boot" mv "${instroot}/boot" "${isoroot}" fi + + # TODO: this might belong somewhere else + if [ -d "${ADDON_DIR}" ]; then + echo "Copying addons from ${ADDON_DIR}..." + cp -r ${ADDON_DIR} ${isoroot}/addons + fi fi # Squash is the next step. -- cgit v1.2.3-54-g00ecf