summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <shumakl@purdue.edu>2014-04-10 19:27:17 -0400
committerLuke Shumaker <shumakl@purdue.edu>2014-04-10 19:27:17 -0400
commit05b0b4082a38b684bf4f79d985198f28aafc1c1a (patch)
tree122c59d07af40a9c351f272db8fd2ee9fe67da2f
parent4464876807dfb286346368cd53ae14cc351bde97 (diff)
de-clutter temp directories
-rw-r--r--.config/login.sh23
1 files changed, 20 insertions, 3 deletions
diff --git a/.config/login.sh b/.config/login.sh
index d129b0f..a86f558 100644
--- a/.config/login.sh
+++ b/.config/login.sh
@@ -17,12 +17,29 @@ umask 022
# TMPDIR #############################################################
-if [[ ! -d "$HOME/tmp.$HOSTNAME" ]]; then
+if [[ ! -d "$HOME/tmp/$HOSTNAME" ]]; then
tmp="$(mktemp --tmpdir -d "$USER@$HOSTNAME-tmpdir.XXXXXXXXXXXXXXXXXXX")"
- ln -sf "$tmp" "$HOME/tmp.$HOSTNAME"
+ mkdir -p -- "$HOME/tmp"
+ ln -sf "$tmp" "$HOME/tmp/$HOSTNAME"
unset tmp
fi
-export TMPDIR="$HOME/tmp.$HOSTNAME"
+export TMPDIR="$HOME/tmp/$HOSTNAME"
+if type flock &>/dev/null; then
+ if [[ "$(readlink -f /dev/fd/7)" != "$(readlink -f "$TMPDIR/.uselock")" ]]; then
+ exec 7>"$TMPDIR/.uselock"
+ fi
+ if flock -sn 7; then
+ _logout_tmpdir_cleanup() {
+ if flock -xn 7; then
+ rm -rf -- "$(readlink -f "$TMPDIR")"
+ rm -- "$TMPDIR"
+ fi
+ }
+ trap _logout_tmpdir_cleanup EXIT
+ fi
+fi
+
+
# XDG ################################################################