9 |
9 |
10 function sss() { |
10 function sss() { |
11 local TTYLOCKER="${TTYLOCKER:-$HOME/bin/ttylocker}" |
11 local TTYLOCKER="${TTYLOCKER:-$HOME/bin/ttylocker}" |
12 local SCREENBIN="/usr/bin/screen" |
12 local SCREENBIN="/usr/bin/screen" |
13 local TMUXBIN="/usr/bin/tmux" |
13 local TMUXBIN="/usr/bin/tmux" |
|
14 local session="$1" |
14 |
15 |
15 if [[ -x $SCREENBIN ]]; then |
16 if [[ -x $SCREENBIN ]]; then |
16 $SCREENBIN -q -list |
17 $SCREENBIN -q -list $session |
17 local r=$? |
18 local r=$? |
18 if (( r == 11 )); then |
19 if (( r == 11 )); then |
19 # There is 1 usable Screen session, let's go |
20 # There is 1 usable Screen session, let's go |
20 [[ -x "$TTYLOCKER" ]] && export LOCKPRG="$TTYLOCKER" |
21 [[ -x "$TTYLOCKER" ]] && export LOCKPRG="$TTYLOCKER" |
21 exec $SCREENBIN -r -x |
22 exec $SCREENBIN -r -x $session |
22 elif (( r > 11 )); then |
23 elif (( r > 11 )); then |
23 # There are several usable Screen sessions, heh |
24 # There are several usable Screen sessions, heh |
24 echo "There are several usable Screen sessions..." |
25 echo "There are several usable Screen sessions..." |
25 return |
26 return |
26 fi |
27 fi |
27 fi |
28 fi |
28 |
29 |
29 # No usable GNU/Screen session, let's try tmux then. |
30 # No usable GNU/Screen session, let's try tmux then. |
30 if [[ -x "$TMUXBIN" ]]; then |
31 if [[ -x "$TMUXBIN" ]]; then |
|
32 if [[ -n $session ]]; then |
|
33 $TMUXBIN has-session -t "$session" && |
|
34 exec $TMUXBIN attach-session -t "$1" |
|
35 return # Exit function with error code |
|
36 fi |
31 # Number of tmux sessions |
37 # Number of tmux sessions |
32 integer n=$($TMUXBIN list-sessions 2>/dev/null | wc -l) |
38 integer n=$($TMUXBIN list-sessions 2>/dev/null | wc -l) |
33 if (( n == 1 )); then |
39 if (( n == 1 )); then |
34 # Attach the session |
40 # Attach the session |
35 exec $TMUXBIN attach # -t "$($TMUXBIN list-session -F '#{session_id}')" |
41 exec $TMUXBIN attach # -t "$($TMUXBIN list-session -F '#{session_id}')" |