#!/usr/bin/env bash # creates a hidden file of your location details based on your address, will expand to support addition via zip codes usage() { echo "Usage: $0 [-z zipcode]" 1>&2; exit 1; } if [[ $# -eq 0 ]] ; then # called without args CURRENT_LOCATION=$(curl --silent http://ip-api.com/csv) CITY=$(echo "$CURRENT_LOCATION" | cut -d , -f 6) LAT=$(echo "$CURRENT_LOCATION" | cut -d , -f 8) LON=$(echo "$CURRENT_LOCATION" | cut -d , -f 9) printf "CITY=%s\nLAT=%s\nLON=%s\n" "$CITY" $LAT $LON > "$HOME/.dotfiles/bin/weather/.env.location" fi while getopts "z:" arg; do case ${arg} in z) ZIPCODE=${OPTARG} source "$HOME/.dotfiles/.priv/key" URL="http://api.openweathermap.org/geo/1.0/zip?zip=$ZIPCODE&appid=$API_KEY" LOCATION=$(curl --silent "$URL") CITY=$(echo $LOCATION | jq -r '.name') LAT=$(echo $LOCATION | jq -r '.lat') LON=$(echo $LOCATION | jq -r '.lon') printf "CITY=%s\nLAT=%s\nLON=%s\n" "$CITY" $LAT $LON > "$HOME/.dotfiles/bin/weather/.env.location" # emptying weather buffer >"$HOME/.dotfiles/bin/weather/.env.weather" ;; ?) usage ;; esac done