diff options
Diffstat (limited to 'bin/cryptdir')
-rwxr-xr-x | bin/cryptdir | 27 |
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 |