From 9f640573906bf7f98133006d09cb2bddca5ec5ae Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Wed, 12 Sep 2012 21:08:56 +0200 Subject: [PATCH] Use ramdisk for volatile storage in OSX. --- src/password-store.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/password-store.sh b/src/password-store.sh index c736d7b..33a0e97 100755 --- a/src/password-store.sh +++ b/src/password-store.sh @@ -239,6 +239,19 @@ case "$command" in if [[ -d /dev/shm && -w /dev/shm && -x /dev/shm ]]; then tmp_dir="$(TMPDIR=/dev/shm mktemp -t $template -d)" + elif [[ $(uname) = "Darwin" ]]; then + cleanup_tmp() { + [[ -d $tmp_dir ]] || return + rm -rf "$tmp_file" "$tmp_dir" 2>/dev/null + umount "$tmp_dir" + diskutil quiet eject "$ramdisk_dev" + rmdir "$tmp_dir" + } + trap cleanup_tmp INT TERM EXIT + tmp_dir="$(mktemp -t $template -d)" + ramdisk_dev="$(hdid -drivekey system-image=yes -nomount 'ram://32768' | cut -d ' ' -f 1)" # 32768 sectors = 16 mb + newfs_hfs -M 700 "$ramdisk_dev" &>/dev/null || exit 1 + mount -t hfs -o noatime -o nobrowse "$ramdisk_dev" "$tmp_dir" || exit 1 else prompt=$(echo "Your system does not have /dev/shm, which means that it may" echo "be difficult to entirely erase the temporary non-encrypted" -- 1.7.12