summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-x.scripts/cron/getforecast6
-rwxr-xr-x.scripts/statusbar/weather9
2 files changed, 7 insertions, 8 deletions
diff --git a/.scripts/cron/getforecast b/.scripts/cron/getforecast
new file mode 100755
index 0000000..2760c89
--- /dev/null
+++ b/.scripts/cron/getforecast
@@ -0,0 +1,6 @@
+#!/bin/sh
+# Updates weather forecast
+ping -q -w 1 -c 1 "$(ip r | grep default | tail -1 | cut -d ' ' -f 3)" >/dev/null || exit
+location="$1"; [ -z "$location" ] || location="$location+"
+curl -s "wttr.in/$location" > ~/.weatherreport
+pkill -RTMIN+5 i3blocks && notify-send "🌞 Weather forecast updated."
diff --git a/.scripts/statusbar/weather b/.scripts/statusbar/weather
index a6c8d75..d87bb3f 100755
--- a/.scripts/statusbar/weather
+++ b/.scripts/statusbar/weather
@@ -1,6 +1,5 @@
#!/bin/sh
-### This is only if your location isn't automatically detected, otherwise you can leave it blank.
-location=""
+[ "$(stat -c %y .weatherreport | awk '{print $1}')" != "$(date '+%Y-%m-%d')" ] && getforecast
case $BLOCK_BUTTON in
1) $TERMINAL -e less -S ~/.weatherreport ;;
@@ -11,12 +10,6 @@ case $BLOCK_BUTTON in
🌞: Daily high" ;;
esac
-[ "$location" != "" ] && location="$location+"
-
-ping -q -w 1 -c 1 "$(ip r | grep default | tail -1 | cut -d ' ' -f 3)" >/dev/null || exit
-
-curl -s wttr.in/$location > ~/.weatherreport
-
printf "%s" "$(sed '16q;d' ~/.weatherreport | grep -wo "[0-9]*%" | sort -n | sed -e '$!d' | sed -e "s/^/☔ /g" | tr -d '\n')"
sed '13q;d' ~/.weatherreport | grep -o "m\\(-\\)*[0-9]\\+" | sort -n -t 'm' -k 2n | sed -e 1b -e '$!d' | tr '\n|m' ' ' | awk '{print " ❄️",$1 "°","🌞",$2 "°"}'