Adjust tmpdir handling to allow easy use of tmpfs
authorJoerg Jaspert <joerg@debian.org>
Thu, 15 Sep 2016 21:04:43 +0000 (23:04 +0200)
committerJoerg Jaspert <joerg@debian.org>
Thu, 15 Sep 2016 21:04:43 +0000 (23:04 +0200)
This checks if there is a tmpfs mount for the user like systemd
creates at login time, and if so (and user wants it by setting
runtmp to true), uses that.

.zsh/10_Environment.zsh
.zsh/zshenv.local.sample

index 9ebd0c0..ea07091 100644 (file)
@@ -59,10 +59,27 @@ if [[ ${COLORS} == "true" ]]; then
     fi
 fi
 
-(( ${+TMPDIR} )) || export TMPDIR="$HOME/tmp"
+# User wants us to check if there is a tmpfs mounted for them
+# (say /run/user/$uid), and if so, point TMPDIR there. We use
+# a subdir there to avoid interfering with other stuff
+if zstyle -T ':ganneff:config' runtmp; then
+    rudir="$(df -t tmpfs --output=target|grep ${UID} || true)/tmp"
+fi
+
+# Ignore existing TMPDIR variable and always repoint...
+if zstyle -T ':ganneff:config' resettmpdir; then
+    export TMPDIR="${rudir:-$HOME/tmp}"
+else
+    # ... or not
+    (( ${+TMPDIR} )) || export TMPDIR="${rudir:-$HOME/tmp}"
+fi
+
 # Ensure the tmpdir exists
 mkdir -p ${TMPDIR}
 
+# And adjust TMPPREFIX
+export TMPPREFIX="${TMPDIR}/zsh"
+
 # If its installed - use lesspipe (or maybe lessfile)
 if is-callable lesspipe; then
     if zstyle -t ':ganneff:config' lesstool lessfile; then
index aed06f6..6c2af42 100644 (file)
@@ -200,6 +200,16 @@ lmanpath=(
 ## overwriting?
 # zstyle ':ganneff:config' safemvcp false
 
+## If you want to point your temp directory to a tmpfs based one,
+## say on a systemd based system (where it ends up /run/user/$UID usually),
+## set this to true.
+# zstyle ':ganneff:config' runtmp true
+
+## If there is already a TMPDIR variable, we use its content, no matter
+## what the runtmp setting says. If you want to forcefully repoint the
+## tmpdir variable, no matter what, true is your friend here.
+# zstyle ':ganneff:config' resettmpdir true
+
 ########################################################################
 ### Prompt setup                                                     ###
 ## use vcs_info in prompt