Mercurial > hg > aboriginal
view more/chroot-splice.sh @ 1839:c8293b3ab81f draft default tip
Teach chroot-splice to accept one or two arguments. (Control image now optional.)
author | Rob Landley <rob@landley.net> |
---|---|
date | Sun, 17 Jan 2016 21:18:52 -0600 |
parents | 4921adb23771 |
children |
line wrap: on
line source
#!/bin/bash # Combine a root filesystem directory and a control image into an $ARCH-specific # chroot containing native build control files, suitable for chrooting into. if [ $# -ne 1 ] && [ $# -ne 2 ] then echo "usage: $0 "'$ARCH [$CONTROL_IMAGE]' >&2 exit 1 fi # Make sure prerequisites exist for i in build/{root-filesystem,native-compiler}-"$1" "$2" do if [ ! -z "$i" ] && [ ! -e "$i" ] then echo "No $i" >&2 exit 1 fi done if [ `id -u` -ne 0 ] then echo "Not root">&2 exit 1 fi # Zap old stuff (if any) [ -z "$CHROOT" ] && CHROOT="build/chroot-$1" trap 'more/zapchroot.sh "$CHROOT"' EXIT if [ -e "$CHROOT" ] then more/zapchroot.sh "$CHROOT" || exit 1 fi # Copy root filesystem and native compiler cp -lan "build/root-filesystem-$1/." "$CHROOT" || exit 1 cp -lan "build/native-compiler-$1/." "$CHROOT" || exit 1 # splice in control image if [ $# -eq 2 ] then if [ -d "$2" ] then mount -o bind "$2" "$CHROOT/mnt" && mount -o remount,ro "$CHROOT/mnt"|| exit 1 else mount -o loop "$2" "$CHROOT/mnt" || exit 1 fi fi # Output some usage hints CPUS=1 HOST="$1" chroot "$CHROOT" /sbin/init.sh