#! /bin/sh


OUTFILE="nn_table_new.csv"

SDPLISTFILE="zdplist.txt"

rm -f "$OUTFILE"
rm -f "$SDPLISTFILE"

awk -v "OUTFILE=$OUTFILE" -v "SDPLISTFILE=$SDPLISTFILE" '
function trim(s)
{
        sub(/^[ \t]*/,"",s)
        sub(/[ \t]*$/,"",s)
        gsub(/\"/,"",s)
        return s
}


function outnn_table(zone,prefix)
{
	# create nn_table.csv format
	outstr = sprintf("x%s,%s", prefix, zone)
	print "outstr=[" outstr "]"
	print outstr >> OUTFILE
	#print outstr | "sort >" OUTFILE
}


{
	print "READ ROW: NR=" NR " [" $0 "]"

	if (NR >= 1 && NR <=4) {	# skip header recs
		print "  Skippig Header rec"
		next
	}

	f1 = $0

	getline
	print "GET ROW:  NR=" NR " [" $0 "]"
	f2 = $0

        npref = split(f2,pref_arr,",")
	sitedialprefixes = ""

	for ( i=1; i <= npref; ++i ) {
		pref = trim(pref_arr[i])
		gsub(/[^0-9]/,":",pref)
		nprefrng = split(pref,prefrng_arr,":")
		if ( nprefrng > 1 ) {
			prepref = prefrng_arr[1]
			low = prefrng_arr[2]
			high = prefrng_arr[3]
			for ( j = low; j <= high; ++j ) {
				prefix = sprintf("%s%s", prepref , j)
				print f1 "|" prefix "|"
				outnn_table(f1,prefix)
				if ( sitedialprefixes == "" ) {
					sitedialprefixes = prefix
				}
				else {
					sitedialprefixes = sitedialprefixes "|" prefix
				}
				print "0: f1=" f1 " sitedialprefixes=[" sitedialprefixes "]"
			}
		}
		else {	
			prefix = pref
			print f1 "|" prefix "|"
			outnn_table(f1,prefix)
			if ( sitedialprefixes == "" ) {
				sitedialprefixes = prefix
			}
			else {
				sitedialprefixes = sitedialprefixes "|" prefix
			}
			print "1: f1=" f1 " sitedialprefixes=[" sitedialprefixes "]"
		}

	}
	zdptag = f1
        gsub(/[^(a-z|A-Z)]/,"",zdptag)
        gsub(/\(/,"",zdptag)
        gsub(/\)/,"",zdptag)
	zdpENVVAR = "zdps_" zdptag
	#printf("%s=\"^(%s)\"\n", zdpENVVAR, sitedialprefixes) >> SDPLISTFILE
	printf("%s=\"%s\"\n", zdpENVVAR, sitedialprefixes) >> SDPLISTFILE
}
' <telstra_charging_zone_telephone_numbers.txt >telstra_charging_zone_telephone_numbers.log