summaryrefslogtreecommitdiff
path: root/contrib/osx-ramdisk.patch
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2012-09-14 05:24:12 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2012-09-14 05:24:12 +0200
commit837ea36d0aa61185ac5a51d632353efc361d7ffd (patch)
tree392a2289b8902173275d6fd0a89a3db3fab2b646 /contrib/osx-ramdisk.patch
parent4959ebe76b9ec1b1effc619b22fdd81d5894d733 (diff)
downloadpass-837ea36d0aa61185ac5a51d632353efc361d7ffd.tar.gz
pass-837ea36d0aa61185ac5a51d632353efc361d7ffd.tar.bz2
pass-837ea36d0aa61185ac5a51d632353efc361d7ffd.zip
Put OSX ramdisk patch into contrib.
This should be removed at somepoint in the future. Currently, the Homebrew people need something to make them happy. This is it.
Diffstat (limited to '')
-rw-r--r--contrib/osx-ramdisk.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/contrib/osx-ramdisk.patch b/contrib/osx-ramdisk.patch
new file mode 100644
index 0000000..b1738b0
--- /dev/null
+++ b/contrib/osx-ramdisk.patch
@@ -0,0 +1,36 @@
+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
+