local/bin/encfsw: Init
parent
337860b725
commit
3ba419a01f
|
@ -0,0 +1,65 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ $# -ne 1 ] && [ $# -ne 2 ]; then
|
||||||
|
echo
|
||||||
|
cat<<EOF
|
||||||
|
Usage: $0 FOLDERS...
|
||||||
|
$0 -u
|
||||||
|
|
||||||
|
Mount encfs-encrypted FOLDERS.
|
||||||
|
With -u, unmount all encfs-mounted partitions.
|
||||||
|
EOF
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
check() {
|
||||||
|
for i ; do
|
||||||
|
if ! command -v $i >/dev/null 2>&1; then
|
||||||
|
echo "'$i' not found in PATH. Exiting." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
mount() {
|
||||||
|
check realpath encfs
|
||||||
|
SOURCE="$(realpath "$1")"
|
||||||
|
MOUNTPOINT="${SOURCE}_decrypted"
|
||||||
|
mkdir -p "$MOUNTPOINT"
|
||||||
|
if [ -z "$PASS" ]; then
|
||||||
|
encfs "$SOURCE" "$MOUNTPOINT"
|
||||||
|
else
|
||||||
|
echo "$PASS" | encfs --stdinpass "$SOURCE" "$MOUNTPOINT"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
unmount() {
|
||||||
|
check findmnt fusermount dataindex
|
||||||
|
|
||||||
|
while IFS= read -r i; do
|
||||||
|
## Generate index on exit.
|
||||||
|
folder=$(basename $(dirname "$i"))
|
||||||
|
mkdir -p ~/personal/index/"$folder"
|
||||||
|
dataindex "$i" | gpg --encrypt --recipient mail@ambrevar.xyz \
|
||||||
|
--output - > ~/personal/index/"$folder"/"$(basename "$i")".index.gpg
|
||||||
|
unset folder
|
||||||
|
fusermount -u "$i"
|
||||||
|
rmdir "$i"
|
||||||
|
done <<EOF
|
||||||
|
$(findmnt --noheadings --output=target encfs)
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$1" = "-u" ]; then
|
||||||
|
unmount
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $# -gt 1 ]; then
|
||||||
|
echo -n "EncFS Password: "
|
||||||
|
read PASS
|
||||||
|
fi
|
||||||
|
|
||||||
|
for i; do
|
||||||
|
mount "$i"
|
||||||
|
done
|
Loading…
Reference in New Issue