Keep chroot mounted throughout modding

This commit is contained in:
Fierelier 2023-04-09 10:37:47 +02:00
parent bffc4d3dfe
commit 6823646d72
4 changed files with 46 additions and 39 deletions

View File

@ -2,4 +2,3 @@ dev-remove
packages-apply
private-users
root-skel
placeholders-remove

View File

@ -1,2 +0,0 @@
#!/bin/bash
find "$1" -name ".wdvn-placeholder" -type f -delete

View File

@ -1,23 +1,25 @@
#!/bin/bash
set -e
trap ctrl_c INT
function ctrl_c() {
wdvn-chroot-end "$1"
exit 1
}
(
function bind() {
set +e
mountpoint -q "$2"
if [ $? = 0 ]; then
set -e
return 0
fi
set -e
mount --bind -o x-gvfs-hide "/dev" "$1/dev"
mount --bind -o x-gvfs-hide "/dev/pts" "$1/dev/pts"
mount --bind -o x-gvfs-hide "/sys" "$1/sys"
mount --bind -o x-gvfs-hide "/proc" "$1/proc"
chroot "$1" ${@:2}
)
if [ $? != 0 ]; then
wdvn-chroot-end "$1"
exit 1
fi
mount --bind -o x-gvfs-hide "$1" "$2"
}
wdvn-chroot-end "$1"
bind "/dev" "$1/dev"
bind "/dev/pts" "$1/dev/pts"
bind "/sys" "$1/sys"
bind "/proc" "$1/proc"
chroot "$1" ${@:2}

View File

@ -1,27 +1,35 @@
#!/bin/bash
set -e
if [[ -d "$1.tmp" ]]; then
rm -r -f "$1.tmp"
fi
(
set -e
if [[ -d "$1.tmp" ]]; then
rm -r -f "$1.tmp"
fi
if ! [[ -d "$1" ]]; then
mkdir -p "$1.tmp"
wdvn-get "$1.tmp"
mv "$1.tmp" "$1"
fi
if ! [[ -d "$1" ]]; then
mkdir -p "$1.tmp"
wdvn-get "$1.tmp"
mv "$1.tmp" "$1"
fi
if [[ -f "$1/chroot" ]]; then
rm -f "$1/chroot"
fi
if [[ -f "$1/chroot" ]]; then
rm -f "$1/chroot"
fi
for WDVN_MODLIST in "${@:2}"
do
echo "-- $WDVN_MODLIST --"
while IFS="" read -r WDVN_LINE || [ -n "$WDVN_LINE" ]
for WDVN_MODLIST in "${@:2}"
do
echo "> $WDVN_LINE"
source wdvn-mod "mods/$WDVN_LINE" "$1"
done < "modlists/$WDVN_MODLIST"
done
echo "-- CLEANUP --"
wdvn-clean "$1"
echo "-- $WDVN_MODLIST --"
while IFS="" read -r WDVN_LINE || [ -n "$WDVN_LINE" ]
do
echo "> $WDVN_LINE"
source wdvn-mod "mods/$WDVN_LINE" "$1"
done < "modlists/$WDVN_MODLIST"
done
echo "-- CLEANUP --"
wdvn-clean "$1"
)
rtn=$?
wdvn-chroot-end "$1"
find "$1" -name ".wdvn-placeholder" -type f -delete
exit $rtn