You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
2.4 KiB
Bash
113 lines
2.4 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
usage() {
|
|
cat <<EOF
|
|
Usage: wttr [-s] [-d] [-u] [-i] [-f] [-h]
|
|
|
|
Queries the weather and outputs it in a Nerd Font compaitable way
|
|
|
|
Options:
|
|
-s, --setloc=<LOC> change location used for wttr.in query
|
|
clears disploc on set
|
|
-d, --disploc=<LOC> set a location name to display instead of the
|
|
location used in wttr.in query
|
|
-u, --unit={c|f} set the output unit to fahrenheit or celsius
|
|
-i, --info shows current values of location, unit and
|
|
disploc if it is set
|
|
-f, --force force refresh weather data
|
|
-h, --help Show this help message
|
|
EOF
|
|
exit 1
|
|
}
|
|
|
|
get_tod() {
|
|
# sets $TOD
|
|
hour=$(date +%H)
|
|
if [[ $hour -gt 21 || $hour -lt 5 ]] ; then # between 9 pm and 5 am
|
|
TOD="night"
|
|
else
|
|
TOD="day"
|
|
fi
|
|
}
|
|
|
|
get_wttr() {
|
|
# gets weather for $LOCATION and stores it into file with timestamp
|
|
url="https://wttr.in/$LOCATION?0&format=j2" #json stuff need to fix temp
|
|
query="{\
|
|
temp: .current_condition[0].temp_F,\
|
|
humidity: .current_condition[0].humidity,\
|
|
conditions: .current_condition[0].weatherCode,\
|
|
location: .nearest_area[0].areaName[0].value}"
|
|
|
|
WTTR=$(curl --silent -fL "$url" | gojq "$query")
|
|
echo "$WTTR"
|
|
#TEMP=$(echo "$WTTR" | gojq -r '.temp_F')
|
|
#HUMIDITY=$(echo "$WTTR" | gojq -r '.humidity')
|
|
#CONDITIONS=$(echo "$WTTR" | gojq -r '.weatherDesc[0].value')
|
|
}
|
|
|
|
set_location() {
|
|
# updates location of weather query to $new_loc
|
|
echo "TODO"
|
|
}
|
|
|
|
display_location() {
|
|
# updates location to display to $disp_loc
|
|
echo "TODO"
|
|
}
|
|
|
|
set_units() {
|
|
# updates units used to $unit
|
|
echo "TODO"
|
|
}
|
|
|
|
display_info() {
|
|
# prints current config to stdout
|
|
echo "TODO"
|
|
}
|
|
|
|
|
|
update_wttr() {
|
|
# checks to see if old weather data is out of date
|
|
echo "TODO"
|
|
}
|
|
|
|
print_wttr() {
|
|
|
|
echo "TODO"
|
|
}
|
|
|
|
while [[ "$1" != "" ]]; do
|
|
case $1 in
|
|
-h | --help)
|
|
usage
|
|
;;
|
|
-s | --setloc)
|
|
shift
|
|
new_loc="$1"
|
|
set_location
|
|
;;
|
|
-d | --disploc)
|
|
shift
|
|
disp_loc="$1"
|
|
display_location
|
|
;;
|
|
-u | --unit)
|
|
shift
|
|
unit="$1"
|
|
set_units
|
|
;;
|
|
-i | --info)
|
|
display_info
|
|
;;
|
|
-f | --force)
|
|
get_wttr
|
|
;;
|
|
*)
|
|
echo "Error: wttr $@"
|
|
usage
|
|
;;
|
|
esac
|
|
shift
|
|
done
|