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