summaryrefslogtreecommitdiff
path: root/.config/login.d/02_tmpdir.sh
blob: 293064ec7ebfd7da75c0780f5fb00103de773e76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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