summaryrefslogtreecommitdiffstats
path: root/bin/cryptdir
diff options
context:
space:
mode:
Diffstat (limited to 'bin/cryptdir')
-rwxr-xr-xbin/cryptdir27
1 files changed, 15 insertions, 12 deletions
diff --git a/bin/cryptdir b/bin/cryptdir
index 4434e6e..3fb858f 100755
--- a/bin/cryptdir
+++ b/bin/cryptdir
@@ -1,13 +1,15 @@
-#!/bin/bash
+#!/bin/sh
+set -eu
+set -o pipefail
-if [[ -e /dev/mapper/cryptdir ]]; then
+if [ -e /dev/mapper/cryptdir ]; then
echo "only one instance can run at a time" 1>&2
exit 1
fi
sudo -v || exit 1
-if [[ -z $1 ]]; then
+if [ -z "${1:-}" ]; then
size='16M'
else
size=$1
@@ -18,20 +20,21 @@ cryptdir=$(mktemp -d)
pass=$(dd if=/dev/urandom bs=1 count=80 | base64)
cleanup () {
+ set +e
cd
- sudo umount $cryptdir
+ sudo umount "$cryptdir"
sudo cryptsetup close cryptdir
- rm -f $cryptfile
- rmdir $cryptdir
+ rm -f "$cryptfile"
+ rmdir "$cryptdir"
}
trap cleanup EXIT
-dd if=/dev/urandom of=$cryptfile bs=$size count=1
-echo $pass | sudo cryptsetup luksFormat $cryptfile -
-echo $pass | sudo cryptsetup open $cryptfile cryptdir --key-file -
+dd if=/dev/urandom of="$cryptfile" bs="$size" count=1
+echo "$pass" | sudo cryptsetup luksFormat "$cryptfile" -
+echo "$pass" | sudo cryptsetup open "$cryptfile" cryptdir --key-file -
sudo mkfs.ext2 /dev/mapper/cryptdir
-sudo mount /dev/mapper/cryptdir $cryptdir
-sudo chown $USER $cryptdir
-cd $cryptdir
+sudo mount /dev/mapper/cryptdir "$cryptdir"
+sudo chown "$USER" "$cryptdir"
+cd "$cryptdir"
$SHELL