fallback to old ismounted, if findmnt is not installed

master
Harald Hoyer 2012-09-20 10:36:13 +02:00
parent aa09b74a41
commit 4211605000
3 changed files with 54 additions and 8 deletions

View File

@ -73,13 +73,35 @@ if [[ ! -e "$testfile" ]]; then
fi fi
rm -f "$testfile" rm -f "$testfile"


ismounted() { find_mount() {
while read a m a; do local dev mnt etc wanted_dev
[[ "$m" = "$1" ]] && return 0 wanted_dev="$(readlink -e -q $1)"
while read dev mnt etc; do
[ "$dev" = "$wanted_dev" ] && echo "$dev" && return 0
done < /proc/mounts done < /proc/mounts
return 1 return 1
} }


# usage: ismounted <mountpoint>
# usage: ismounted /dev/<device>
if command -v findmnt >/dev/null; then
ismounted() {
findmnt "$1" > /dev/null 2>&1
}
else
ismounted() {
if [ -b "$1" ]; then
find_mount "$1" > /dev/null && return 0
return 1
fi

while read a m a; do
[ "$m" = "$1" ] && return 0
done < /proc/mounts
return 1
}
fi

# clean up after ourselves no matter how we die. # clean up after ourselves no matter how we die.
cleanup() { cleanup() {
echo "Something failed. Move back to the original state" echo "Something failed. Move back to the original state"

View File

@ -452,11 +452,34 @@ udevproperty() {
fi fi
} }


find_mount() {
local dev mnt etc wanted_dev
wanted_dev="$(readlink -e -q $1)"
while read dev mnt etc; do
[ "$dev" = "$wanted_dev" ] && echo "$dev" && return 0
done < /proc/mounts
return 1
}

# usage: ismounted <mountpoint> # usage: ismounted <mountpoint>
# usage: ismounted /dev/<device> # usage: ismounted /dev/<device>
if command -v findmnt >/dev/null; then
ismounted() { ismounted() {
findmnt "$1" > /dev/null findmnt "$1" > /dev/null 2>&1
} }
else
ismounted() {
if [ -b "$1" ]; then
find_mount "$1" > /dev/null && return 0
return 1
fi

while read a m a; do
[ "$m" = "$1" ] && return 0
done < /proc/mounts
return 1
}
fi


wait_for_if_up() { wait_for_if_up() {
local cnt=0 local cnt=0

View File

@ -13,11 +13,12 @@ depends() {


install() { install() {
local _d local _d
dracut_install mount mknod mkdir pidof sleep chroot findmnt\ dracut_install mount mknod mkdir pidof sleep chroot \
sed ls flock cp mv dmesg rm ln rmmod mkfifo umount readlink setsid sed ls flock cp mv dmesg rm ln rmmod mkfifo umount readlink setsid
inst $(command -v modprobe) /sbin/modprobe inst $(command -v modprobe) /sbin/modprobe


dracut_install -o less dracut_install -o findmnt less

if [ ! -e "${initdir}/bin/sh" ]; then if [ ! -e "${initdir}/bin/sh" ]; then
dracut_install bash dracut_install bash
(ln -s bash "${initdir}/bin/sh" || :) (ln -s bash "${initdir}/bin/sh" || :)