aboutsummaryrefslogtreecommitdiff
path: root/.config/shell/functions.d/bwu
blob: 78c1378cb9ec75e01807db9b0f1bc20803cdd8c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/sh

bwu() {
	bwu_sessionfile="/tmp/bw-session-$USER"

	if [ ! -f "$bwu_sessionfile" ]
	then
		# Create session file with very strict permissions
		bwu_sessiondir="$(dirname "$bwu_sessionfile")"

		if [ ! -d "$bwu_sessiondir" ]
		then
			mkdir -p -- "$(dirname "$bwu_sessionfile")"
			chmod -- 0700 "$(dirname "$bwu_sessionfile")"
		fi

		touch -- "$bwu_sessionfile"
		chmod -- 0600 "$bwu_sessionfile"

		# Actually get a session token
		bw unlock --raw > "$bwu_sessionfile"
	fi

	BW_SESSION="$(cat "$bwu_sessionfile")"
	export BW_SESSION

	unset bwu_sessionfile
	unset bwu_sessiondir
}