80 lines
2.2 KiB
Bash
80 lines
2.2 KiB
Bash
#!/bin/bash
|
|
#przed uruchomieniem nalezy zadeklarowac zmienna srodowiskowa (np declare -x APIXUKEY=<klucz api>) oraz zainstalowac program jq
|
|
api=$APIXUKEY
|
|
LOCATION="Poznan"
|
|
DYNAMIC=false
|
|
FAHRENHEIT=false
|
|
while getopts :l:fd OPT;
|
|
do
|
|
case $OPT in
|
|
l) LOCATION="$OPTARG";;
|
|
d) DYNAMIC=true;;
|
|
f) FAHRENHEIT=true;;
|
|
\?) echo "Bledna opcja: -$OPTARG" >&2
|
|
exit 1
|
|
;;
|
|
:)echo "Opcja -$OPTARG wymaga argumentu" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
DATE=$(date -r /tmp/$LOCATION.json +%s)
|
|
SYSDATE=$(date +%s)
|
|
if [ $[$DATE+300] -lt $SYSDATE ]
|
|
then
|
|
curl "http://api.apixu.com/v1/current.json?key=$api&q=$LOCATION" -o /tmp/$LOCATION.json -#
|
|
|
|
fi
|
|
function weather {
|
|
|
|
JSON=$(cat /tmp/$LOCATION.json)
|
|
clear
|
|
if [ $FAHRENHEIT != true ]; then
|
|
echo "Kraj $(echo $JSON | jq -r '.location.country')"
|
|
echo "Miasto $(echo $JSON | jq -r '.location.name')"
|
|
echo "Czas lokalny $(echo $JSON | jq -r '.location.localtime')"
|
|
echo "Temperatura $(echo $JSON | jq -r '.current.temp_c') °C"
|
|
echo "Temperatura odczuwalna $(echo $JSON | jq -r '.current.feelslike_c') °C"
|
|
echo "Predkosc wiatru $(echo $JSON | jq -r '.current.wind_kph') km/h"
|
|
echo "Cisnienie $(echo $JSON | jq -r '.current.pressure_mb') hPa"
|
|
echo "Opad $(echo $JSON | jq -r '.current.precip_mm') mm"
|
|
echo "Wilgotnosc $(echo $JSON | jq -r '.current.humidity') %"
|
|
echo "Ostatnia aktualizacja $(echo $JSON | jq -r '.current.last_updated')"
|
|
else
|
|
echo "Kraj $(echo $JSON | jq -r '.location.country')"
|
|
echo "Miasto $(echo $JSON | jq -r '.location.name')"
|
|
echo "Czas lokalny $(echo $JSON | jq -r '.location.localtime')"
|
|
echo "Temperatura $(echo $JSON | jq -r '.current.temp_f') °F"
|
|
echo "Temperatura odczuwalna $(echo $JSON | jq -r '.current.feelslike_f') °F"
|
|
echo "Predkosc wiatru $(echo $JSON | jq -r '.current.wind_mph') mph"
|
|
echo "Cisnienie $(echo $JSON | jq -r '.current.pressure_in') inHg"
|
|
echo "Opad $(echo $JSON | jq -r '.current.precip_in') inches"
|
|
echo "Wilgotnosc $(echo $JSON | jq -r '.current.humidity') %"
|
|
echo "Ostatnia aktualizacja $(echo $JSON | jq -r '.current.last_updated')"
|
|
fi
|
|
|
|
}
|
|
if $DYNAMIC == true
|
|
then
|
|
for ((;;));
|
|
do
|
|
weather
|
|
sleep 300
|
|
done
|
|
else
|
|
|
|
weather
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|