#!/bin/sh
# Skrypt moonphase określający fazę Księżyca (a dokładniej wielkość
# jego oświetlonej części) w bieżącym lub zadanym dniu.

# Format zapytania do strony www.moongiant.com:
# http://www.moongiant.com/phase/MM/DD/RRRR

# Jeżeli nie zostanie określona data, przyjmowana jest data bieżąca:
if [ $# -eq 0 ] ; then
  thedate="today"
else
  # Data jest podana. Sprawdźmy, czy jej format jest prawidłowy.
  day="$(echo $1 | cut -d- -f3)" 
  mon="$(echo $1 | cut -d- -f2)"
  year="$(echo $1 | cut -d- -f1)"

  if [ -z "$year" -o -z "$day" ] ; then     # Zerowa długość?
    echo "Błąd: poprawy format daty to RRRR-DD-MM."
    exit 1
  fi

  thedate=$mon/$day/$year # Potencjalne niebezpieczeństwo: poprawność daty
                          # nie jest sprawdzana.
fi

url="http://www.moongiant.com/phase/$thedate"
pattern="Illumination:"

phase="$( curl -s "$url" | grep "$pattern" | tr ',' '\
' | grep "$pattern" | sed 's/[^0-9]//g')"

# Format odpowiedzi: "Illumination: <span>74%\n<\/span>"

if [ "$thedate" = "today" ] ; then
  echo "Dzisiaj oświetlone jest ${phase}% powierzchni Księżyca."
else
  echo "W dniu $1 oświetlone było/będzie ${phase}% powierzchni Księżyca."
fi

exit 0
