forked from tmux/tmux
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnew-session-environment.sh
66 lines (55 loc) · 1.05 KB
/
new-session-environment.sh
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/sh
# new session environment
PATH=/bin:/usr/bin
TERM=screen
[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux)
TMUX="$TEST_TMUX -Ltest"
$TMUX kill-server 2>/dev/null
TMP=$(mktemp)
OUT=$(mktemp)
SCRIPT=$(mktemp)
trap "rm -f $TMP $OUT $SCRIPT" 0 1 15
cat <<EOF >$SCRIPT
(
echo TERM=\$TERM
echo PWD=\$(pwd)
echo PATH=\$PATH
echo SHELL=\$SHELL
echo TEST=\$TEST
) >$OUT
EOF
cat <<EOF >$TMP
new -- /bin/sh $SCRIPT
EOF
(cd /; env -i TERM=ansi TEST=test1 PATH=1 SHELL=/bin/sh \
$TMUX -f$TMP start) || exit 1
sleep 1
(cat <<EOF|cmp -s - $OUT) || exit 1
TERM=screen
PWD=/
PATH=1
SHELL=/bin/sh
TEST=test1
EOF
(cd /; env -i TERM=ansi TEST=test2 PATH=2 SHELL=/bin/sh \
$TMUX -f$TMP new -d -- /bin/sh $SCRIPT) || exit 1
sleep 1
(cat <<EOF|cmp -s - $OUT) || exit 1
TERM=screen
PWD=/
PATH=2
SHELL=/bin/sh
TEST=test2
EOF
(cd /; env -i TERM=ansi TEST=test3 PATH=3 SHELL=/bin/sh \
$TMUX -f/dev/null new -d source $TMP) || exit 1
sleep 1
(cat <<EOF|cmp -s - $OUT) || exit 1
TERM=screen
PWD=/
PATH=2
SHELL=/bin/sh
TEST=test2
EOF
$TMUX kill-server 2>/dev/null
exit 0