31 lines
924 B
Bash
Executable file
31 lines
924 B
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
if [[ $@ =~ (-r|--root) ]] || [[ $@ == "-Q"* ]] || [[ $@ == "-F"* ]] || [[ $LD_LIBRARY_PATH =~ (libfakeroot) ]]; then
|
|
no_check=1
|
|
fi
|
|
|
|
if [[ ! $no_check ]]; then
|
|
# Elevate permissions to root
|
|
[[ $EUID -eq 0 ]] || exec sudo bash $0 $@
|
|
|
|
# Check if the disk is ro'ed using subvolume properties
|
|
if btrfs property get / 2> /dev/null | grep -q 'ro=true'; then
|
|
cat <<- END
|
|
The root partition is currently in read-only mode, to run pacman it will have to be switched over to read-write mode.
|
|
|
|
Note that any changes made to the system will not carry over to future OS image updates.
|
|
|
|
END
|
|
read -p 'Do you want to unlock the root partition? (y/N) ' ans
|
|
|
|
if [[ $ans =~ ^(y|Y|yes|YES)$ ]]; then
|
|
btrfs property set / ro false
|
|
else
|
|
printf 'Quitting... no changes have been made to the system.\n'
|
|
exit 1
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# No exit statement here, we return pacman's exit code
|
|
/usr/bin/pacman $@
|