Merge pull request #203 from miknikif/feature/fix-weather-script
This commit is contained in:
commit
6de48667f9
3 changed files with 32 additions and 62 deletions
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -186,14 +179,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")
|
||||||
|
|
|
@ -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
31
scripts/weather_wrapper.sh
Executable 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
|
Loading…
Reference in a new issue