#!/bin/bash

# Skrypt areacode wyszukujący miasto i stan na podstawie kierunkowego numeru
# telefonicznego. Wykorzystuje stronę Bennet Yee zawierającą dane w prostym
# formacie tabelarycznym.

source="http://www.bennetyee.org/ucsd-pages/area.html"

if [ -z "$1" ] ; then
  echo "Użycie: areacode <trzycyfrowy_numer_kierunkowy>"; exit 1
fi

# Polecenie wc -c zwraca znaki wraz z końcem wiersza, zatem ciąg 3 cyfr
# składa się z 4 znaków.
if [ "$(echo $1 | wc -c)" -ne 4 ] ; then
  echo "areacode: Błędny kod. Podaj trzy cyfry numeru kierunkowego."; exit 1
fi

# Czy argument zawiera tylko cyfry?
if [ ! -z "$(echo $1 | sed 's/[[:digit:]]//g')" ] ; then
  echo "areacode: Błędny kod. Kod musi składać się wyłącznie z cyfr."; exit 1
fi

# Wreszcie można przeszukać bazę numerów telefonicznych...

result="$(curl -s -dump $source | grep "name=\"$1" | \
  sed 's/<[^>]*>//g;s/^ //g' | \
  cut -f2- -d\ | cut -f1 -d\( )"

echo "Numer $1 odpowiada regionowi $result."

exit 0
