about summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xsh/wtr_sun43
1 files changed, 43 insertions, 0 deletions
diff --git a/sh/wtr_sun b/sh/wtr_sun
new file mode 100755
index 0000000..c9907d9
--- /dev/null
+++ b/sh/wtr_sun
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+# https://github.com/open-meteo/open-meteo
+i=0
+curl -s -G -d "latitude=${1:-37.34}" -d "longitude=${2:--121.89}" -d 'daily=weathercode,temperature_2m_max,temperature_2m_min,sunrise,sunset' -d 'timezone=auto' 'https://api.open-meteo.com/v1/forecast' | jq -r '[.daily|.time, .weathercode, .temperature_2m_max, .temperature_2m_min, .sunrise, .sunset]|transpose|.[]|@tsv' | while read -r time code max min sunrise sunset; do
+	# https://open-meteo.com/en/docs
+	case "$code" in
+		0) code='clear sky';;
+		1) code='mainly clear';;
+		2) code='partly cloudy';;
+		3) code=overcast;;
+		45) code=fog;;
+		48) code='depositing rime fog';;
+		51) code='light drizzle';;
+		53) code='moderate drizzle';;
+		55) code='dense drizzle';;
+		56) code='light freezing drizzle';;
+		57) code='dense freezing drizzle';;
+		61) code='slight rain';;
+		63) code='moderate rain';;
+		65) code='heavy rain';;
+		66) code='light freeze rain';;
+		67) code='heavy freeze rain';;
+		71) code='slight snow fall';;
+		73) code='moderate snow fall';;
+		75) code='heavy snow fall';;
+		77) code='snow grains';;
+		80) code='slight rain showers';;
+		81) code='moderate rain showers';;
+		82) code='violent rain showers';;
+		85) code='slight snow showers';;
+		86) code='heavy snow showers';;
+		95) code='slight or moderate thunderstorm';;
+		96) code='thunderstorm with slight hail';;
+		99) code='thunderstorm with heavy hail';;
+		*) exit 1;;
+	esac
+	if [ "$i" -ne 1 ]; then
+		printf 'sunrise: %s | sunset: %s\n' "${sunrise#*T}" "${sunset#*T}"
+		i=1
+	fi
+	printf '%s\t%s\t%s\t%s\n' "${time#*-}" "$max" "$min" "$code"
+done