diff options
author | Luke Shumaker <shumakl@purdue.edu> | 2015-02-06 15:17:51 -0500 |
---|---|---|
committer | Luke Shumaker <shumakl@purdue.edu> | 2015-02-06 15:17:51 -0500 |
commit | dab097d5000c4697761b6985cb3512f7bce0147f (patch) | |
tree | 7b81b7826a1e23822955560f0f73dc09cda6c8e8 /.config/login.d/02_tmpdir.sh | |
parent | f50b49ef26f5c692bda1f3f13cd38f9f4f395300 (diff) | |
parent | a6f973687fb4a1a4558f74f7da595b6902a5dce0 (diff) |
Merge remote-tracking branch 'origin/master' into purdue-cs/master
Conflicts:
.config/X11/clientrc
.config/bash/rc.d/emacs.sh
.config/cron/make-config
.config/emacs/custom.el
.config/emacs/init.el
.config/git/config
.config/login.sh
.config/selected_editor
.local/bin/config-path
Diffstat (limited to '.config/login.d/02_tmpdir.sh')
-rw-r--r-- | .config/login.d/02_tmpdir.sh | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/.config/login.d/02_tmpdir.sh b/.config/login.d/02_tmpdir.sh new file mode 100644 index 0000000..293064e --- /dev/null +++ b/.config/login.d/02_tmpdir.sh @@ -0,0 +1,21 @@ +if [[ ! -d "$HOME/tmp/$HOSTNAME" ]]; then + tmp="$(mktemp --tmpdir -d "$USER@$HOSTNAME-tmpdir.XXXXXXXXXXXXXXXXXXX")" + mkdir -p -- "$HOME/tmp" + ln -sf "$tmp" "$HOME/tmp/$HOSTNAME" + unset tmp +fi +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 |