Fixed a bug that was introduced into `bin/subst.entry-index.sh` where the value `$HTML_SED` was set too early. Shell functions variables are evaluated when they are executed, not when they are first parsed. So exported variables used by a shell function need to be set only before the shell function is executed. Checkpoint `bin/cvt-submission.sh` as part of our testing. Set file modes of 0444 for when `.auth.json` is formed from `.auth.json.xz`. The awk scripts under bin put their name (basename) into error messages to make it easier to debug any error they might raise. Changed `bin/cvt-submission.sh` VERSION from "2.0.1 2025-05-01" to "2.0.2 2025-05-17". Changed `bin/filelist.entry.json.awk` VERSION from "1.0 2024-02-12" to "1.0.1 2025-05-17". Changed `bin/manifest.csv.entry.awk` VERSION from "1.0 2024-07-14" to "1.0.1 2025-05-17". Changed `bin/manifest.entry.json.awk` VERSION from "1.2.1 2024-11-16" to "1.2.2 2025-05-17". Changed `bin/subst.entry-index.sh` VERSION from "2.0.0 2025-03-13" to "2.0.1 2025-05-17". Changed `bin/subst.entry-navbar.awk` VERSION from "1.3 2024-08-02" to "1.3.1 2025-05-17". Changed `bin/subst.year-navbar.awk` VERSION from "1.2 2024-04-04" to "1.2.1 2025-05-17". Update sitemap. Tested the above via `make update` on macOS.
132 lines
2.9 KiB
Awk
Executable File
132 lines
2.9 KiB
Awk
Executable File
#!/usr/bin/env awk
|
|
#
|
|
# subst.year-navbar.awk - output substitutions for navbar on behalf of a year
|
|
#
|
|
# This tool is usually invoked from the bin/subst.year-index.sh output tool.
|
|
# That tool, in turn, is usually invoked by:
|
|
#
|
|
# -o bin/subst.year-index.sh
|
|
#
|
|
# IMPORTANT: Each command line option / argument MUST be printed on a separate line!
|
|
#
|
|
# usage:
|
|
#
|
|
# awk -v year_arg=YYYY -f bin/subst.year-navbar.awk .top
|
|
#
|
|
# where:
|
|
#
|
|
# YYYY IOCCC year or mock
|
|
|
|
BEGIN {
|
|
|
|
# setup
|
|
#
|
|
VERSION="1.2.1 2025-05-17"
|
|
NAME = "subst.year-navbar.awk"
|
|
process_next_line = 0; # 1 ==> we found our year_arg, now process the next line
|
|
found_year_arg = 0; # 1 ==> we found our year_arg
|
|
prev_line = ""; # the previous YYYY line
|
|
navbar_phase = "year.mid"; # navbar name to use (-H navbar=navbar_phase)
|
|
|
|
# error if year_arg is not set via -v year_arg=YYYY
|
|
#
|
|
if (length(year_arg) == 0) {
|
|
exit 210; # use 210 to match length(year_arg) == 0 error in the END section
|
|
}
|
|
}
|
|
|
|
# process YYYY lines
|
|
#
|
|
{
|
|
# obtain the YYYY line
|
|
#
|
|
year = $0;
|
|
|
|
# if we need the line after we found our year_arg
|
|
#
|
|
if (process_next_line) {
|
|
|
|
# process the line after we found our year_arg
|
|
#
|
|
# report the previous year
|
|
print "-s";
|
|
print "RIGHT_LINK=../" year "/index.html";
|
|
print "-s";
|
|
print "RIGHT_TEXT=" year;
|
|
process_next_line = 0;
|
|
|
|
# if we found our year_arg
|
|
#
|
|
} else if (year_arg == $0) {
|
|
|
|
# in case our our year_arg is the 1st line
|
|
#
|
|
if (NR == 1) {
|
|
# no previous line year_arg is the 1st line
|
|
navbar_phase = "year.first";
|
|
}
|
|
|
|
# process the previous YYYY line with this match
|
|
#
|
|
if (prev_line) {
|
|
|
|
# process previous line
|
|
#
|
|
prev_year = prev_line;
|
|
|
|
# report the next entry for this year
|
|
print "-s";
|
|
print "LEFT_LINK=../" prev_line "/index.html";
|
|
print "-s";
|
|
print "LEFT_TEXT=" prev_line;
|
|
}
|
|
|
|
# process our found year_arg
|
|
#
|
|
# report up link top year index.html
|
|
print "-s";
|
|
print "UP_LINK=../years.html";
|
|
print "-s";
|
|
print "UP_TEXT=top";
|
|
process_next_line = 1;
|
|
found_year_arg = 1;
|
|
}
|
|
|
|
# save the line as the next previous line
|
|
#
|
|
prev_line = $0;
|
|
}
|
|
|
|
END {
|
|
|
|
# error if github is not set via -v github=REPO_URL
|
|
#
|
|
if (length(year_arg) == 0) {
|
|
print "-e";
|
|
print "ERROR:", NAME ": year_arg variable not set, call with -v year_arg=YYYY";
|
|
print "-E";
|
|
print "210"; # use 210 to match length(year_arg) == 0 error in the BEGIN section
|
|
exit 210; # use 210 to match length(year_arg) == 0 error in the BEGIN section
|
|
}
|
|
|
|
# case: we did not find our year_arg
|
|
#
|
|
if (!found_year_arg) {
|
|
# ERROR: year_arg was not found
|
|
print "-e";
|
|
print "'" NAME ": did not find:", year_arg "'";
|
|
print "-E";
|
|
print "215";
|
|
exit
|
|
|
|
} else if (process_next_line) {
|
|
# no next line year_arg is the last line
|
|
navbar_phase = "year.last";
|
|
}
|
|
|
|
# output the navbar phase name
|
|
#
|
|
print "-H";
|
|
print "navbar=" navbar_phase;
|
|
}
|