mirror of
https://github.com/mgree/ffs.git
synced 2024-10-05 15:18:20 +03:00
4aff907523
Mountpoints are typically inferred/generated from filenames with a -m/--mount flag for when reading from STDIN or to manually specify a mountpoint.
45 lines
865 B
Bash
Executable File
45 lines
865 B
Bash
Executable File
#!/bin/sh
|
|
|
|
fail() {
|
|
echo FAILED: $1
|
|
if [ "$MNT" ]
|
|
then
|
|
cd
|
|
umount "$MNT"
|
|
rmdir "$MNT"
|
|
fi
|
|
exit 1
|
|
}
|
|
|
|
MNT=$(mktemp -d)
|
|
|
|
umask 022
|
|
|
|
ffs --mode 666 -m "$MNT" ../json/object.json &
|
|
PID=$!
|
|
sleep 2
|
|
cd "$MNT"
|
|
ls -l eyes | grep -e 'rw-rw-rw-' >/dev/null 2>&1 || fail file1
|
|
mkdir pockets
|
|
ls -ld pockets | grep -e 'rwxr-xr-x' >/dev/null 2>&1 || fail dir1
|
|
cd - >/dev/null 2>&1
|
|
umount "$MNT" || fail unmount1
|
|
sleep 1
|
|
kill -0 $PID >/dev/null 2>&1 && fail process1
|
|
|
|
umask 077
|
|
ffs --mode 666 --dirmode 700 -m "$MNT" ../json/object.json &
|
|
PID=$!
|
|
sleep 2
|
|
cd "$MNT"
|
|
ls -l eyes | grep -e 'rw-rw-rw-' >/dev/null 2>&1 || fail file2
|
|
mkdir pockets
|
|
ls -ld pockets | grep -e 'rwx----' >/dev/null 2>&1 || fail dir2
|
|
cd - >/dev/null 2>&1
|
|
umount "$MNT" || fail unmount2
|
|
sleep 1
|
|
kill -0 $PID >/dev/null 2>&1 && fail process2
|
|
|
|
|
|
rmdir "$MNT" || fail mount
|