diff options
author | Luke Shumaker <shumakl@purdue.edu> | 2014-04-10 19:27:17 -0400 |
---|---|---|
committer | Luke Shumaker <shumakl@purdue.edu> | 2014-04-10 19:27:17 -0400 |
commit | 05b0b4082a38b684bf4f79d985198f28aafc1c1a (patch) | |
tree | 122c59d07af40a9c351f272db8fd2ee9fe67da2f /.config/login.sh | |
parent | 4464876807dfb286346368cd53ae14cc351bde97 (diff) |
de-clutter temp directories
Diffstat (limited to '.config/login.sh')
-rw-r--r-- | .config/login.sh | 23 |
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 ################################################################ |