TYPE=`echo $LINE | cut -d' ' -f 1`
NAME=`echo $LINE | cut -d' ' -f 2`
- unset DIR FILE IMMUTABLE SOURCE SYMLINK
+ unset DIR FILE IMMUTABLE SOURCE SYMLINK BLOCKDEV CHARDEV PIPE
( echo $TYPE | grep -q d ) && DIR=1
( echo $TYPE | grep -q f ) && FILE=1
( echo $TYPE | grep -q i ) && IMMUTABLE=1
( echo $TYPE | grep -q s ) && SOURCE=1
( echo $TYPE | grep -q l ) && SYMLINK=1
+ ( echo $TYPE | grep -q b ) && BLOCKDEV=1
+ ( echo $TYPE | grep -q c ) && CHARDEV=1
+ ( echo $TYPE | grep -q p ) && PIPE=1
if [ ! -z "$SOURCE" ] ; then
if [ ! -z "$DIR" ] ; then
fi
elif [ ! -z "$SYMLINK" ] ; then
ln -s "linktext:$NAME" $NAME
+ elif [ ! -z "$BLOCKDEV" ] ; then
+ mkdir -p `dirname $NAME` || exit $?
+ # re-create /dev/loop7 (better be free)
+ mknod $NAME b 7 7 || exit $?
+ chmod 644 $NAME || exit $?
+ elif [ ! -z "$CHARDEV" ] ; then
+ mkdir -p `dirname $NAME` || exit $?
+ # re-create a /dev/null
+ mknod $NAME c 1 3 || exit $?
+ chmod 644 $NAME || exit $?
+ elif [ ! -z "$PIPE" ] ; then
+ mkfifo $NAME || exit $?
+ chmod 644 $NAME || exit $?
else
echo "What type am i: $TYPE" 1>&2
exit $?
find $1 -type b -printf 'b %p\n'
find $1 -type c -printf 'c %p\n'
find $1 -type l -printf 'l %p\n'
+ find $1 -type p -printf 'p %p\n'
+ find $1 -type s -printf 's %p\n'
) | sort > /tmp/check-$$
grep -v '^$' | sort | diff -u - /tmp/check-$$
ERR=$?