diff options
Diffstat (limited to 'mkrootfs.sh.in')
-rw-r--r-- | mkrootfs.sh.in | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/mkrootfs.sh.in b/mkrootfs.sh.in index bedcb0c..583044c 100644 --- a/mkrootfs.sh.in +++ b/mkrootfs.sh.in @@ -56,6 +56,7 @@ Options -h Show this help -p <pkgs> Additional packages to install into the rootfs (separated by blanks) -r <repo> Set XBPS repository (may be set multiple times) + -k <cmd> Call "cmd <ROOTFSPATH>" after building the rootfs -V Show version _EOF } @@ -75,7 +76,10 @@ umount_pseudofs() { run_cmd_target() { info_msg "Running $@ for target $_ARCH ..." - eval XBPS_TARGET_ARCH=${_TARGET_ARCH:=${_ARCH}} "$@" + case "${_TARGET_ARCH}" in + i686*|x86_64*) eval XBPS_ARCH=${_TARGET_ARCH} "$@";; + *) eval XBPS_TARGET_ARCH=${_TARGET_ARCH:=${_ARCH}} "$@";; + esac [ $? -ne 0 ] && die "Failed to run $@" } @@ -104,7 +108,7 @@ register_binfmt() { # # main() # -while getopts "b:C:c:hp:r:V" opt; do +while getopts "b:C:c:hp:r:k:V" opt; do case $opt in b) PKGBASE="$OPTARG";; C) XBPS_CONFFILE="-C $OPTARG";; @@ -112,6 +116,7 @@ while getopts "b:C:c:hp:r:V" opt; do h) usage; exit 0;; p) EXTRA_PKGS="$OPTARG";; r) XBPS_REPOSITORY="$XBPS_REPOSITORY --repository=$OPTARG";; + k) POST_HOOK="$OPTARG";; V) echo "$PROGNAME @@MKLIVE_VERSION@@"; exit 0;; esac done @@ -121,10 +126,8 @@ PLATFORM="$1" SUBPLATFORM=$PLATFORM case "$PLATFORM" in - i686-musl) _TARGET_ARCH="$PLATFORM"; _ARCH="i386";; - i686) _TARGET_ARCH="$PLATFORM"; _ARCH="i386";; - x86_64-musl) _TARGET_ARCH="$PLATFORM"; _ARCH="x86_64";; - x86_64) _TARGET_ARCH="$PLATFORM"; _ARCH="x86_64";; + i686*) _TARGET_ARCH="$PLATFORM"; _ARCH="i686";; + x86_64*) _TARGET_ARCH="$PLATFORM"; _ARCH="x86_64";; dockstar) _TARGET_ARCH="armv5tel"; _ARCH="armv5tel";; rpi-musl) _TARGET_ARCH="armv6l-musl"; _ARCH="armv6l";; rpi) _TARGET_ARCH="armv6l"; _ARCH="armv6l";; @@ -134,7 +137,10 @@ esac : ${XBPS_REPOSITORY:=--repository=http://repo.voidlinux.eu/current --repository=http://muslrepo.voidlinux.eu/current} : ${XBPS_CACHEDIR:=--cachedir=$PWD/xbps-cachedir-${_TARGET_ARCH}} -: ${PKGBASE:=base-system} +case "$PLATFORM" in + i686*|x86_64*) PKGBASE="base-voidstrap";; + *) PKGBASE="base-system";; +esac if [ -z "$PLATFORM" ]; then echo "$PROGNAME: platform was not set!" @@ -184,7 +190,7 @@ run_cmd_target "xbps-query -R -r $rootfs $XBPS_CONFFILE $XBPS_CACHEDIR $XBPS_REP chmod 755 $rootfs case "$PLATFORM" in - i686*|x86_64*) PKGS="${PKGBASE} grub" ;; + i686*|x86_64*) PKGS="${PKGBASE}" ;; *) PKGS="${PKGBASE} ${SUBPLATFORM}-base" ;; esac [ -n "$EXTRA_PKGS" ] && PKGS="${PKGS} ${EXTRA_PKGS}" @@ -209,7 +215,7 @@ if [ -n "${_ARCH}" ]; then info_msg "Reconfiguring packages for ${_ARCH} ..." case "$PLATFORM" in i686*|x86_64*) - run_cmd "XBPS_ARCH=$_ARCH xbps-reconfigure -r $rootfs base-files" + run_cmd "XBPS_ARCH=${PLATFORM} xbps-reconfigure -r $rootfs base-files" ;; *) register_binfmt @@ -226,6 +232,9 @@ fi # Setup default root password. # run_cmd "chroot $rootfs sh -c 'echo "root:voidlinux" | chpasswd -c SHA512'" +if [ -n "$POST_HOOK" ]; then + run_cmd "$POST_HOOK $rootfs" +fi umount_pseudofs # # Cleanup rootfs. |