Skip to content
Snippets Groups Projects
osx-ramdisk.patch 1.31 KiB
Newer Older
  • Learn to ignore specific revisions
  • From 9f640573906bf7f98133006d09cb2bddca5ec5ae Mon Sep 17 00:00:00 2001
    From: "Jason A. Donenfeld" <Jason@zx2c4.com>
    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