Jarvis Carroll c2fcde0f26 arch scripts
It took a moment to work out that there is actually no way of
bootstrapping an arch environment without permanently installing things
to the host system! So we just download a live image and unpack it.

Then after that, getting erlang to work was very easy, just install it,
install zx, run. No R26 incompatibility problems, life is good!
2025-06-04 17:07:45 +10:00

103 lines
1.9 KiB
Bash
Executable File

#!/bin/sh
if test `id -u` -ne 0
then
echo "$0 must be run as root."
return
fi
set -e
FRESH=clean_environment
ROOT=test_environment
add_mount() {
if mountpoint -q "$ROOT$1"
then
echo "$ROOT$1 already mounted."
else
echo "Mounting $2$1 to $ROOT$1"
mkdir -p "$ROOT$1"
mount -o bind "$2$1" "$ROOT$1"
fi
}
remove_mount() {
if mountpoint -q "$ROOT$1"
then
echo "Unmounting $ROOT$1"
umount -l "$ROOT$1"
fi
}
add_mounts() {
add_mount / "$ROOT"
add_mount /proc
add_mount /sys
add_mount /dev
add_mount /dev/pts
add_mount /tmp/.X11-unix
}
remove_mounts() {
remove_mount /tmp/.X11-unix
remove_mount /dev/pts
remove_mount /dev
remove_mount /sys
remove_mount /proc
remove_mount /
}
remove_environment() {
if test -d "$ROOT"
then
# Call this script that automatically unmounts the mount points too.
remove_mounts
echo "Removing $ROOT"
rm -r "$ROOT"
else
echo "No environment found at $ROOT. Doing nothing."
fi
}
remove_everything() {
if test -d "$ROOT"
then
# Call this script that automatically unmounts the mount points too.
remove_environment
fi
if test -d "$FRESH"
then
echo "Removing $FRESH"
rm -r "$FRESH"
fi
if test -d debootstrap
then
echo "Removing debootstrap"
rm -r debootstrap
fi
if test -f pkglist.x86_64.txt
then
echo "Removing pkglist.x86_64.txt"
rm pkglist.x86_64.txt
fi
if test -f archlinux-bootstrap*.tar.zst
then
echo "Removing archlinux bootstrap tarballs."
rm archlinux-bootstrap*.tar.zst
fi
}
case "$1" in
everything) remove_everything ;;
mounts) remove_mounts ;;
add_mounts) add_mounts ;;
environment) remove_environment ;;
"") remove_environment ;;
esac