diff --git a/shared-functions.so b/shared-functions.so
index 5a98b18..2841de0 100644
--- a/shared-functions.so
+++ b/shared-functions.so
@@ -12,10 +12,22 @@ source "$TMP"
# WRITE TMP
function wtmp {
- > $TMP
- echo "var_mailqueue_runs=$var_mailqueue_runs" >> $TMP
- echo "var_conn=$var_conn" >> $TMP
- echo "var_ip4=$var_ip4" >> $TMP
- echo "var_ip6=$var_ip6" >> $TMP
- echo "var_vpn=$var_vpn" >> $TMP
+ if [ "$1" = "" ]; then # no argument given
+ > $TMP
+ echo "var_mailqueue_runs=$var_mailqueue_runs" >> $TMP
+ echo "var_conn=$var_conn" >> $TMP
+ echo "var_ip4=$var_ip4" >> $TMP
+ echo "var_ip6=$var_ip6" >> $TMP
+ echo "var_vpn=$var_vpn" >> $TMP
+ echo "var_ns=$var_ns" >> $TMP
+ else # certain variables given, so only update these variables' values (avoids overlaps, esp. if status-misc.sh needs longer to be executed)
+ NO=$#
+ for ((i = 1; i <= $NO; i++)); do
+ VAR_NAME=${!i} # variable name
+ VAR_VAL=${!VAR_NAME} # value of the variable's name
+
+ sed -Ei "s/^$VAR_NAME=.*/$VAR_NAME=$VAR_VAL/" $TMP
+ done
+ fi
+
}
diff --git a/status-ip.sh b/status-ip.sh
index 6a70b8e..f0adffd 100755
--- a/status-ip.sh
+++ b/status-ip.sh
@@ -41,4 +41,4 @@ else
echo "Offline status is set. Turn on to enable checks"
fi
-wtmp # Write changes back
+wtmp var_ip4 var_ip6 var_vpn # Write changes back
diff --git a/status-misc.sh b/status-misc.sh
index 03b4b93..0db42d1 100755
--- a/status-misc.sh
+++ b/status-misc.sh
@@ -52,6 +52,7 @@ function check_svn {
TOOL="$TOOL;svn=$SVN_REV"
}
+
# OUTPUT INFO ON STATUSBAR
check_mailqueue
check_svn
@@ -64,4 +65,4 @@ echo "$TOOL"
echo "
/usr/share/icons/gnome/16x16/actions/format-justify-fill.png"
echo "xfce4-terminal -x $CURDIR/status-interaction.sh &"
-wtmp
+wtmp var_mailqueue_runs # write updated values back to status file