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