2
0
mirror of https://github.com/alexanderepstein/Bash-Snippets synced 2018-11-08 02:59:35 +01:00
Bash-Snippets/weather/weather
2017-06-27 10:34:32 -04:00

31 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
# Author: Alexander Epstein https://github.com/alexanderepstein
getWeather()
{
country=$(curl -s ipinfo.io/country) > /dev/null ## grab the country
if [ $country = "US" ];then ## if were in the us id rather not use longitude and latitude so the output is nicer
city=$(curl -s ipinfo.io/city) > /dev/null
region=$(curl -s ipinfo.io/region) > /dev/null
region=$(echo "$region" | tr -dc '[:upper:]')
curl wttr.in/$city,$region
else ## otherwise we are going to use longitude and latitude
location=$(curl -s ipinfo.io/loc) > /dev/null
curl wttr.in/$location
fi
}
checkInternet()
{
echo "GET http://google.com HTTP/1.0\n\n" | nc google.com 80 > /dev/null 2>&1 # query google with a get request
if [ $? -eq 0 ]; then #check if the output is 0, if so no errors have occured and we have connected to google successfully
return 0
else
echo "Error: no active internet connection" >&2 #sent to stderr
return 1
fi
}
checkInternet || exit 1 # check if we have a valid internet connection if this isnt true the rest of the script will not work so stop here
getWeather