nanpa.awk revision 1.1 1 1.1 jhawk # $NetBSD: nanpa.awk,v 1.1 2003/03/03 01:14:03 jhawk Exp $
2 1.1 jhawk function parse(file, ispipe, isplanning, i, planinit, t)
3 1.1 jhawk {
4 1.1 jhawk planinit = 0;
5 1.1 jhawk while((ispipe?(file | getline):(getline < file)) > 0) {
6 1.1 jhawk sub(/#.*/, "");
7 1.1 jhawk if (length($0)==0) continue;
8 1.1 jhawk if (isplanning) {
9 1.1 jhawk split($0, f);
10 1.1 jhawk if (!planinit && f[2]=="NEW NPA") {
11 1.1 jhawk planinit=1;
12 1.1 jhawk for (i=1; i<=NF; i++)
13 1.1 jhawk fnames[$i]=i-1;
14 1.1 jhawk } else if (planinit && length(f[fnames["NEW NPA"]])>1) {
15 1.1 jhawk t = f[fnames["LOCATION"]] FS;
16 1.1 jhawk if (f[fnames["OVERLAY?"]]=="Yes")
17 1.1 jhawk t = t "Overlay of " f[fnames["OLD NPA"]];
18 1.1 jhawk else if (f[fnames["OLD NPA"]])
19 1.1 jhawk t = t "Split of " f[fnames["OLD NPA"]];
20 1.1 jhawk if (f[fnames["STATUS"]])
21 1.1 jhawk t = t " (" f[fnames["STATUS"]] ")";
22 1.1 jhawk if (length(f[fnames["IN SERVICE DATE"]]) > 1)
23 1.1 jhawk t = t " effective " \
24 1.1 jhawk f[fnames["IN SERVICE DATE"]];
25 1.1 jhawk data[f[fnames["NEW NPA"]] "*"] = t;
26 1.1 jhawk }
27 1.1 jhawk } else {
28 1.1 jhawk # digits only
29 1.1 jhawk match($0, /^[0-9]/);
30 1.1 jhawk if (RSTART==0) continue;
31 1.1 jhawk i=index($0, FS);
32 1.1 jhawk data[substr($0, 1, i-1)]=substr($0,i+1);
33 1.1 jhawk }
34 1.1 jhawk }
35 1.1 jhawk close(file);
36 1.1 jhawk }
37 1.1 jhawk
38 1.1 jhawk BEGIN{
39 1.1 jhawk FS=":"
40 1.1 jhawk print "# $""NetBSD: $";
41 1.1 jhawk print "# Generated from http://www.nanpa.com/area_codes/index.html";
42 1.1 jhawk print "# (with local exceptions)";
43 1.1 jhawk print "# ";
44 1.1 jhawk print "# format:";
45 1.1 jhawk print "# Area Code : Description : Detail : State/Province Abbrev.";
46 1.1 jhawk print "# (3rd and 4th fields optional)";
47 1.1 jhawk print "# A * in the Area Code field indicates a future area code."
48 1.1 jhawk print "# ";
49 1.1 jhawk parse("ftp -o - " \
50 1.1 jhawk "http://docs.nanpa.com/cgi-bin/npa_reports/nanpa\\?" \
51 1.1 jhawk "function=list_npa_geo_number | sed -f nanpa.sed", 1, 0);
52 1.1 jhawk parse("ftp -o - " \
53 1.1 jhawk "http://docs.nanpa.com/cgi-bin/npa_reports/nanpa\\?" \
54 1.1 jhawk "function=list_npa_non_geo | sed -f nanpa.sed", 1, 0);
55 1.1 jhawk parse("ftp -o - " \
56 1.1 jhawk "http://docs.nanpa.com/cgi-bin/npa_reports/nanpa\\?" \
57 1.1 jhawk "function=list_npa_not_in_service | sed -f nanpa.sed", 1, 1);
58 1.1 jhawk parse("na.phone.add", 0, 0);
59 1.1 jhawk sort="sort -n";
60 1.1 jhawk for (i in data)
61 1.1 jhawk print i FS data[i] | sort
62 1.1 jhawk close(sort);
63 1.1 jhawk }
64