#!/usr/bin/env bash encode_to_url_format() { echo "$1" | sed 's/ /%20/g' } check_if_empty() { [[ -z "$1" ]] && echo "0" || echo "$1" } KEY="699a48531cdd445784916ed7a7ca80e6" CITY="Virginia Beach" CITYN=$(encode_to_url_format "$CITY") UNITS="imperial" # Available "metric" "imperial" WEATHER=$(curl -sf "api.openweathermap.org/data/2.5/weather?q=$CITYN&appid=$KEY&units=$UNITS") WEATHER_DESC=$(echo "$WEATHER" | jq -r ".weather[0].main") WEATHER_TEMP=$(echo "$WEATHER" | jq ".main.temp" | cut -d "." -f 1) WEATHER_ICON_CODE=$(echo "$WEATHER" | jq -r ".weather[].icon" | head -1) WEATHER_FEELS_LIKE=$(echo "$WEATHER" | jq ".main.feels_like" | cut -d "." -f 1) WEATHER_ICON="" WEATHER_HEX="" case $WEATHER_ICON_CODE in "01d") WEATHER_ICON="" WEATHER_HEX="#ffd86b" ;; "01n") WEATHER_ICON="" WEATHER_HEX="#fcdcf6" ;; "02d") WEATHER_ICON="" WEATHER_HEX="#adadff" ;; "02n") WEATHER_ICON="" WEATHER_HEX="#adadff" ;; "03d") WEATHER_ICON="" WEATHER_HEX="#adadff" ;; "03n") WEATHER_ICON="" WEATHER_HEX="#adadff" ;; "04d") WEATHER_ICON="" WEATHER_HEX="#adadff" ;; "04n") WEATHER_ICON="" WEATHER_HEX="#acb0d0" ;; "09d") WEATHER_ICON="" WEATHER_HEX="#6b95ff" ;; "09n") WEATHER_ICON="" WEATHER_HEX="#6b95ff" ;; "10d") WEATHER_ICON="" WEATHER_HEX="#6b95ff" ;; "10n") WEATHER_ICON="" WEATHER_HEX="#6b95ff" ;; "11d") WEATHER_ICON="" WEATHER_HEX="#ffeb57" ;; "11n") WEATHER_ICON="" WEATHER_HEX="#ffeb57" ;; "13d") WEATHER_ICON="" WEATHER_HEX="#e3e6fc" ;; "13n") WEATHER_ICON="" WEATHER_HEX="#e3e6fc" ;; "40d") WEATHER_ICON="" WEATHER_HEX="#84afdb" ;; "40n") WEATHER_ICON="" WEATHER_HEX="#84afdb" ;; *) WEATHER_ICON="" WEATHER_HEX="#adadff" ;; esac case $1 in "current_temp") check_if_empty "$WEATHER_TEMP" ;; "current_temp_fahrenheit") WEATHER_TEMP=$("$WEATHER_TEMP" 9 / 5 + 32) check_if_empty "$WEATHER_TEMP" ;; "feels_like") check_if_empty "$WEATHER_FEELS_LIKE" ;; "weather_desc") [[ -z $WEATHER_DESC ]] && echo "Not Available." || echo "$WEATHER_DESC" ;; "icon") echo $WEATHER_ICON ;; "hex") echo $WEATHER_HEX ;; "full") echo "$WEATHER" ;; "city") echo "$CITY" ;; "wmodule") echo $WEATHER_ICON "$WEATHER_TEMP"° ;; esac