summaryrefslogtreecommitdiff
path: root/src/xichroot.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/xichroot.sh')
-rw-r--r--src/xichroot.sh58
1 files changed, 0 insertions, 58 deletions
diff --git a/src/xichroot.sh b/src/xichroot.sh
deleted file mode 100644
index 7136e25..0000000
--- a/src/xichroot.sh
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/bin/bash
-# This script is intended for root users to automatically mount requried dirs and chroot into an installed system
-# simplifed version of arch-chroot from <https://github.com/archlinux/arch-install-scripts>
-
-args=$@
-target=$1
-
-die() { printf "$@\n"; exit 1;}
-
-ignore_error() {
- "$@" 2>/dev/null
- return 0
-}
-
-chroot_add_mount() {
- mount "$@" && CHROOT_ACTIVE_MOUNTS=("$2" "${CHROOT_ACTIVE_MOUNTS[@]}")
-}
-
-chroot_maybe_add_mount() {
- local cond=$1; shift
- if eval "$cond"; then
- chroot_add_mount "$@"
- fi
-}
-
-chroot_setup() {
- CHROOT_ACTIVE_MOUNTS=()
- [[ $(trap -p EXIT) ]] && die '(BUG): attempting to overwrite existing EXIT trap'
- trap 'chroot_teardown' EXIT
-
- chroot_add_mount proc "$target/proc" -t proc -o nosuid,noexec,nodev
- chroot_add_mount sys "$target/sys" -t sysfs -o nosuid,noexec,nodev,ro
- ignore_error chroot_maybe_add_mount "[[ -d '$1/sys/firmware/efi/efivars' ]]" \
- efivarfs "$target/sys/firmware/efi/efivars" -t efivarfs -o nosuid,noexec,nodev
- chroot_add_mount udev "$target/dev" -t devtmpfs -o mode=0755,nosuid
- chroot_add_mount devpts "$target/dev/pts" -t devpts -o mode=0620,gid=5,nosuid,noexec
- chroot_add_mount shm "$target/dev/shm" -t tmpfs -o mode=1777,nosuid,nodev
- chroot_add_mount /run "$target/run" --bind
- chroot_add_mount tmp "$target/tmp" -t tmpfs -o mode=1777,strictatime,nodev,nosuid
-}
-
-chroot_teardown() {
- if (( ${#CHROOT_ACTIVE_MOUNTS[@]} )); then
- umount "${CHROOT_ACTIVE_MOUNTS[@]}"
- fi
- unset CHROOT_ACTIVE_MOUNTS
-}
-
-[ "$EUID" -eq 0 ] || die "Please run this as root"
-[[ -d $target ]] || die "$target is not a directory; cannot chroot!"
-
-chroot_setup $@
-
-if [ $# -gt 1 ]; then
- chroot $@
-else
- chroot $@ /bin/sh -l
-fi