This looks like an interesting project. However, Togs will fail to run
if /bin/sh is linked to bash (or zsh?) due to Togs attempting to set a
read only variable ($UID) in a couple of functions. Renaming this to
$S_UID seems to fix the entire problem. A patch is attached.
commit 87d48f4cef3ef13d776e3a38fbfae3b834008bef
Author: Bennett, Bryan <[email protected]>
Date: Mon Nov 25 09:25:23 2013 -0500
Fix bash/zsh compatibility.
Changes $UID to $S_UID throughout, as both bash & zsh reserve $UID for a
readonly variable by that name.
diff --git a/togs b/togs
index 6053994..21b8d13 100755
--- a/togs
+++ b/togs
@@ -172,14 +172,14 @@ prelaunch() {
fi
fi
- UID=`name2uid $NAME`
- [ "$UID" = "ERR" ] && UID="`mkUID $NAME`"
+ S_UID=`name2uid $NAME`
+ [ "$S_UID" = "ERR" ] && S_UID="`mkUID $NAME`"
# Set terminal window title to include the togs session name
printf "\033]0;$SCRIPT - $NAME\007"
# dtach will either reconnect or launch a new session
- $DTACH -A "$BASE.$UID.session" $DTACH_OPTS $SCRIPTPATH -d $RCDIR --launch $NAME
+ $DTACH -A "$BASE.$S_UID.session" $DTACH_OPTS $SCRIPTPATH -d $RCDIR --launch $NAME
menu 0
}
@@ -220,13 +220,13 @@ locking() {
ACTION=$1
NAME=$2
- UID=`name2uid $NAME`
- [ "$UID" = "ERR" ] && errout "Session $NAME does not exist"
+ S_UID=`name2uid $NAME`
+ [ "$S_UID" = "ERR" ] && errout "Session $NAME does not exist"
perm="600"
[ "$ACTION" = "-u" ] && perm="666"
- chmod $perm $BASE.$UID.* || errout "Error changing permissions of session $NAME"
+ chmod $perm $BASE.$S_UID.* || errout "Error changing permissions of session $NAME"
exit 0;
}
@@ -236,10 +236,10 @@ send_cmd() {
NAME=$1
COMMAND=$2
- UID=`name2uid $NAME`
- [ "$UID" = "ERR" ] && errout "Session $NAME does not exist"
+ S_UID=`name2uid $NAME`
+ [ "$S_UID" = "ERR" ] && errout "Session $NAME does not exist"
- echo $COMMAND >"$BASE.$UID.cmd"
+ echo $COMMAND >"$BASE.$S_UID.cmd"
exit 0
}
@@ -248,13 +248,13 @@ rename() {
OLD=$1
NEW=$2
- UID=`name2uid $OLD`
- [ "$UID" = "ERR" ] && errout "Session $OLD does not exist"
+ S_UID=`name2uid $OLD`
+ [ "$S_UID" = "ERR" ] && errout "Session $OLD does not exist"
[ "`name2uid $NEW`" = "ERR" ] || errout "Session $NEW already exists"
checkID $NEW
- mv $BASE.$UID.name.$OLD $BASE.$UID.name.$NEW
+ mv $BASE.$S_UID.name.$OLD $BASE.$S_UID.name.$NEW
exit 0
}