#!/usr/bin/env bash # Weather backend: wttr.in with its native ANSI art (curl UA gets terminal colours). # Args: $1 = location (may be empty -> wttr.in geolocates the caller), $2 = query opts. # Prints the wttr.in body (ANSI or plain, per opts) to stdout. set -uo pipefail loc="${1:-}" # Note: ${2-0}, not ${2:-0} — the expanded view passes an *empty* opts to request # wttr.in's default 3-day forecast, and :- would wrongly rewrite that empty string # to "0" (current conditions only). Default to "0" only when no opts arg is given. opts="${2-0}" # URL-encode spaces in a city name. loc="${loc// /+}" url="https://wttr.in/${loc}?${opts}" # -A curl makes wttr.in return terminal (ANSI) output regardless of the real UA. curl -sf -A curl --max-time 10 "$url"