TODO
====
+* Weather and weather-forecast: fetch new data only if current one is too old.
* Better sandbox template
* Should be indepotent.
* Should work for more use cases.
--- /dev/null
+#!/bin/bash
+#
+# Simple wrapper around wttr.in
+#
+
+# Parameters
+BASENAME="`basename $0`"
+PROGRAM="$1"
+CACHE="$HOME/.local/share/weather"
+
+# Load config
+source $HOME/.custom/wttr.in.conf || exit 1
+
+# weather-forecast service query
+function weather_forecast_query {
+ # Make sure everything we need exists
+ mkdir -p $CACHE
+ touch $CACHE/weather-forecast.cur $CACHE/weather-forecast.prev
+
+ # Save the previous forecast
+ cp $CACHE/weather-forecast.cur $CACHE/weather-forecast.prev
+ curl wttr.in/$LOCATION > $CACHE/weather-forecast.cur 2> /dev/null
+
+ # Test if current forecast is empty, meaning
+ # that we're probably ofline. In that case
+ # we provide the previous output.
+ if [ ! -s "$CACHE/weather-forecast.cur" ]; then
+ cp $CACHE/weather-forecast.prev $CACHE/weather-forecast.cur
+ fi
+
+ # Display output
+ cat $CACHE/weather-forecast.cur
+}
+
+# Main
+weather_forecast_query