Add scripts for Void scripts
This commit is contained in:
parent
b344241b33
commit
c200c89b75
25
debian/mountpoints
vendored
25
debian/mountpoints
vendored
@ -1,25 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
if test `id -u` -ne 0
|
||||
then
|
||||
echo "$0 must be run as root."
|
||||
return
|
||||
fi
|
||||
|
||||
ROOT=test_environment
|
||||
|
||||
check_mount() {
|
||||
if mountpoint "$ROOT$1" > /dev/null
|
||||
then
|
||||
echo "$ROOT$1 already mounted."
|
||||
else
|
||||
mkdir -p "$ROOT$1"
|
||||
mount -o bind "$1" "$ROOT$1"
|
||||
fi
|
||||
}
|
||||
|
||||
check_mount /proc
|
||||
check_mount /sys
|
||||
check_mount /dev
|
||||
check_mount /dev/pts
|
||||
|
86
void/cleanup
Executable file
86
void/cleanup
Executable file
@ -0,0 +1,86 @@
|
||||
#!/bin/sh
|
||||
|
||||
if test `id -u` -ne 0
|
||||
then
|
||||
echo "$0 must be run as root."
|
||||
return
|
||||
fi
|
||||
|
||||
FRESH=clean_environment
|
||||
ROOT=test_environment
|
||||
|
||||
add_mount() {
|
||||
if mountpoint "$ROOT$1" -q
|
||||
then
|
||||
echo "$ROOT$1 already mounted."
|
||||
else
|
||||
echo "Mounting $1 to $ROOT$1"
|
||||
mkdir -p "$ROOT$1"
|
||||
mount -o bind "$1" "$ROOT$1"
|
||||
fi
|
||||
}
|
||||
|
||||
remove_mount() {
|
||||
if mountpoint "$ROOT$1" -q
|
||||
then
|
||||
echo "Unmounting $ROOT$1"
|
||||
umount "$ROOT$1"
|
||||
fi
|
||||
}
|
||||
|
||||
add_mounts() {
|
||||
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_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 -f xbps-static*.tar.xz
|
||||
then
|
||||
echo "Removing xbps-static tarballs."
|
||||
rm xbps-static*.tar.xz
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
everything) remove_everything ;;
|
||||
mounts) remove_mounts ;;
|
||||
add_mounts) add_mounts ;;
|
||||
environment) remove_environment ;;
|
||||
"") remove_environment ;;
|
||||
esac
|
||||
|
63
void/create_environment
Executable file
63
void/create_environment
Executable file
@ -0,0 +1,63 @@
|
||||
#!/bin/sh
|
||||
|
||||
if test `id -u` -ne 0
|
||||
then
|
||||
echo "$0 must be run as root."
|
||||
return
|
||||
fi
|
||||
|
||||
ROOT=test_environment
|
||||
FRESH=clean_environment
|
||||
|
||||
TARBALL=xbps-static-static-0.59_5.x86_64-musl.tar.xz
|
||||
# See https://xmirror.voidlinux.org/ for other mirrors.
|
||||
REPO=https://ftp.swin.edu.au/voidlinux
|
||||
|
||||
if test -e "$FRESH"
|
||||
then
|
||||
echo "Void installation found at $FRESH. Good."
|
||||
else
|
||||
if test -e "$TARBALL"
|
||||
then
|
||||
echo "Tarball found."
|
||||
else
|
||||
URL="$REPO/static/$TARBALL"
|
||||
echo "Fetching tarball from $URL"
|
||||
curl "$URL" -O
|
||||
fi
|
||||
|
||||
mkdir "$FRESH"
|
||||
tar xf "$TARBALL" -C "$FRESH"
|
||||
|
||||
mkdir -p "$FRESH/etc/xbps.d"
|
||||
echo "repository=$REPO/current" > "$FRESH/etc/xbps.d/00-repository-main.conf"
|
||||
|
||||
XBPS_ARCH=x86_64 "$FRESH/usr/bin/xbps-install.static" -r "$FRESH" -S base-system
|
||||
fi
|
||||
|
||||
if test -e "$ROOT"
|
||||
then
|
||||
echo "Existing installation found at $ROOT, removing."
|
||||
./cleanup
|
||||
fi
|
||||
|
||||
echo "Copying $FRESH to $ROOT."
|
||||
cp -r "$FRESH" "$ROOT"
|
||||
|
||||
echo "Initializing $ROOT."
|
||||
|
||||
chmod 1777 "$ROOT"
|
||||
chmod 1777 "$ROOT/bin"
|
||||
chmod 1777 "$ROOT/tmp"
|
||||
chmod 4755 "$ROOT/usr/bin/sudo"
|
||||
|
||||
# Add DNS configs
|
||||
cp /etc/resolv.conf "$ROOT/etc/resolv.conf"
|
||||
|
||||
cp -r install_scripts "$ROOT/root"
|
||||
|
||||
./cleanup add_mounts
|
||||
|
||||
chroot "$ROOT" /root/install_scripts/user_setup "$@"
|
||||
|
||||
./cleanup mounts
|
22
void/enter_environment
Executable file
22
void/enter_environment
Executable file
@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
|
||||
if test `id -u` -ne 0
|
||||
then
|
||||
echo "$0 must be run as root."
|
||||
return
|
||||
fi
|
||||
|
||||
ROOT=test_environment
|
||||
|
||||
if test -e "$ROOT"
|
||||
then
|
||||
echo "Using existing environment in $ROOT."
|
||||
else
|
||||
./create_environment
|
||||
fi
|
||||
|
||||
./cleanup add_mounts
|
||||
|
||||
chroot "$ROOT" sudo -iu user "$@"
|
||||
|
||||
./cleanup mounts
|
BIN
void/install_scripts/qpq.zrf
Normal file
BIN
void/install_scripts/qpq.zrf
Normal file
Binary file not shown.
19
void/install_scripts/user_setup
Executable file
19
void/install_scripts/user_setup
Executable file
@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Overwrite locale setting specified before the chroot
|
||||
#export LANG=C
|
||||
#export LC_ALL=C
|
||||
|
||||
# Add a passwordless sudoer
|
||||
useradd -m -s /bin/bash -G wheel user
|
||||
passwd -d user
|
||||
echo "user ALL=(ALL) NOPASSWD:ALL" > "/etc/sudoers.d/user"
|
||||
chmod 0440 "/etc/sudoers.d/user"
|
||||
|
||||
# Copy the install scripts into their home directory
|
||||
cp -r /root/install_scripts /home/user
|
||||
#chown -R user:user /home/user/install_scripts
|
||||
|
||||
# su to this new user... Or sudo -iu, since we want to pass in arguments too.
|
||||
cd /home/user
|
||||
sudo -iu user "$@"
|
BIN
void/install_scripts/uwiger.zrf
Normal file
BIN
void/install_scripts/uwiger.zrf
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user