#! /usr/bin/gawk -f
# Last edited on 2011-04-05 23:26:57 by stolfilocal
BEGIN \
{
USAGE = ( "reformat-nisa-html.gawk -v rnum=NN -v rtime=HH:MM < IN.html > OUT.sh" );
abort = -1;
if (rnum !~ /^[0-9]+$/) { arg_error("missing or invalid \"rnum\""); }
if (rtime !~/^[0-9][0-9]?[:][0-9][0-9]/) { arg_error("missing of invalid \"rtime\""); }
}
(abort >= 0) \
{ exit abort; }
//\
{
# Remove TABs:
gsub(/[\011]/, " ");
# Remove non-info:
gsub(/^[ ]*
<[\/]a><[\/]li>/, "");
gsub(/[.]pdf">[ ]*/, ".pdf@@");
gsub(/[ ]*\(PDF[^()]*[^()][0-9,]*[A-Z]B\)/, "");
gsub(/[ ]+/, "_")
gsub(/[@][@]/, " ");
# Discard blank lines:
if ($0 ~ /^[ ]*$/) { next; }
# Grab info fields:
fn = $1; # File name
tt = $2; # Title
if (fn !~ /^201[0-9][01][0-9][0-3][0-9][0-9][0-9][0-9][-][0-9]+[.]pdf$/) { data_error("bad format"); }
# Grab date:
yr = substr(fn, 1, 4); # Year.
mo = substr(fn, 5, 2); # Month.
dy = substr(fn, 7, 2); # Day of month.
pk = substr(fn, 9, 3); # Docpack number.
su = substr(fn, 12); # Document number in docpack, plus file extension.
# Guess parent dir:
dr = ( yr mo dy pk );
# Print fetch line:
printf \
"mesubsnarf \"%s/%s/%s/%s\" \"%s REL-%s-A\" \"%s-%s-%s-%s\" \"jp%s%s%s-%s%s\"\n", \
yr, mo, dr, fn, tt, rnum, \
yr, mo, dy, rtime, \
yr, mo, dy, pk, su;
}
function data_error(msg)
{
printf "line %d: %s\n", FNR, msg > "/dev/stderr";
abort = 1; exit abort;
}
function arg_error(msg)
{
printf "** %s\n", msg > "/dev/stderr";
printf "usage: %s\n", usage > "/dev/stderr";
abort = 1; exit abort;
}