Merge branch 'master' into add-custom-script-plugin

This commit is contained in:
pataquets 2023-04-26 13:40:00 +02:00
commit 854ea972fa
3 changed files with 33 additions and 63 deletions

View file

@ -7,8 +7,6 @@ source $current_dir/utils.sh
main() main()
{ {
datafile=/tmp/.dracula-tmux-data
# set configuration option variables # set configuration option variables
show_fahrenheit=$(get_tmux_option "@dracula-show-fahrenheit" true) show_fahrenheit=$(get_tmux_option "@dracula-show-fahrenheit" true)
show_location=$(get_tmux_option "@dracula-show-location" true) show_location=$(get_tmux_option "@dracula-show-location" true)
@ -24,7 +22,7 @@ main()
show_border_contrast=$(get_tmux_option "@dracula-border-contrast" false) show_border_contrast=$(get_tmux_option "@dracula-border-contrast" false)
show_day_month=$(get_tmux_option "@dracula-day-month" false) show_day_month=$(get_tmux_option "@dracula-day-month" false)
show_refresh=$(get_tmux_option "@dracula-refresh-rate" 5) show_refresh=$(get_tmux_option "@dracula-refresh-rate" 5)
time_format=$(get_tmux_option "@dracula-time-format" "%Y-%m-%d(%a) %H:%M") time_format=$(get_tmux_option "@dracula-time-format" "")
show_kubernetes_context_label=$(get_tmux_option "@dracula-kubernetes-context-label" "") show_kubernetes_context_label=$(get_tmux_option "@dracula-kubernetes-context-label" "")
IFS=' ' read -r -a plugins <<< $(get_tmux_option "@dracula-plugins" "battery network weather") IFS=' ' read -r -a plugins <<< $(get_tmux_option "@dracula-plugins" "battery network weather")
show_empty_plugins=$(get_tmux_option "@dracula-show-empty-plugins" true) show_empty_plugins=$(get_tmux_option "@dracula-show-empty-plugins" true)
@ -67,11 +65,6 @@ main()
left_sep="$show_left_sep" left_sep="$show_left_sep"
fi fi
# start weather script in background
if [[ "${plugins[@]}" =~ "weather" ]]; then
$current_dir/sleep_weather.sh $show_fahrenheit $show_location $fixed_location &
fi
# Set timezone unless hidden by configuration # Set timezone unless hidden by configuration
case $show_timezone in case $show_timezone in
false) false)
@ -197,14 +190,8 @@ main()
script="#($current_dir/kubernetes_context.sh $show_kubernetes_context_label)" script="#($current_dir/kubernetes_context.sh $show_kubernetes_context_label)"
elif [ $plugin = "weather" ]; then elif [ $plugin = "weather" ]; then
# wait unit $datafile exists just to avoid errors
# this should almost never need to wait unless something unexpected occurs
while [ ! -f $datafile ]; do
sleep 0.01
done
IFS=' ' read -r -a colors <<< $(get_tmux_option "@dracula-weather-colors" "orange dark_gray") IFS=' ' read -r -a colors <<< $(get_tmux_option "@dracula-weather-colors" "orange dark_gray")
script="#(cat $datafile)" script="#($current_dir/weather_wrapper.sh $show_fahrenheit $show_location $fixed_location)"
elif [ $plugin = "time" ]; then elif [ $plugin = "time" ]; then
IFS=' ' read -r -a colors <<< $(get_tmux_option "@dracula-time-colors" "dark_purple white") IFS=' ' read -r -a colors <<< $(get_tmux_option "@dracula-time-colors" "dark_purple white")

View file

@ -1,48 +0,0 @@
#!/usr/bin/env bash
# setting the locale, some users have issues with different locales, this forces the correct one
export LC_ALL=en_US.UTF-8
#wrapper script for running weather on interval
fahrenheit=$1
location=$2
fixedlocation=$3
LOCKFILE=/tmp/.dracula-tmux-weather.lock
DATAFILE=/tmp/.dracula-tmux-data
ensure_single_process()
{
# check for another running instance of this script and terminate it if found
[ -f $LOCKFILE ] && ps -p "$(cat $LOCKFILE)" -o cmd= | grep -F " ${BASH_SOURCE[0]}" && kill "$(cat $LOCKFILE)"
echo $$ > $LOCKFILE
}
main()
{
ensure_single_process
current_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
if [ ! -f $DATAFILE ]; then
printf "Loading..." > $DATAFILE
fi
$current_dir/weather.sh > $DATAFILE
while tmux has-session &> /dev/null
do
$current_dir/weather.sh $fahrenheit $location $fixedlocation > $DATAFILE
if tmux has-session &> /dev/null
then
sleep 1200
else
break
fi
done
rm $LOCKFILE
}
#run main driver function
main

31
scripts/weather_wrapper.sh Executable file
View file

@ -0,0 +1,31 @@
#!/usr/bin/env bash
# setting the locale, some users have issues with different locales, this forces the correct one
export LC_ALL=en_US.UTF-8
#wrapper script for running weather on interval
fahrenheit=$1
location=$2
fixedlocation=$3
DATAFILE=/tmp/.dracula-tmux-data
LAST_EXEC_FILE="/tmp/.dracula-tmux-weather-last-exec"
RUN_EACH=1200
TIME_NOW=$(date +%s)
TIME_LAST=$(cat "${LAST_EXEC_FILE}" 2>/dev/null || echo "0")
main()
{
current_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
if [ "$(expr ${TIME_LAST} + ${RUN_EACH})" -lt "${TIME_NOW}" ]; then
# Run weather script here
$current_dir/weather.sh $fahrenheit $location $fixedlocation > "${DATAFILE}"
echo "${TIME_NOW}" > "${LAST_EXEC_FILE}"
fi
cat "${DATAFILE}"
}
#run main driver function
main