The top link in the topnav bar for or year level `index.html` pages now links to `years.html` instead of the very top level repo/web `index.html` page. Changed `bin/subst.year-navbar.awk` VERSION from "1.1 2024-03-02" to "1.2 2024-04-04". Make `make sort_gitignore` less verbose. Changed `bin/sort.gitignore.sh` VERSION from "1.1.4 2024-03-28" to "1.1.5 2024-04-04". Performed `make www` to implement the above and test on macOS.
131 lines
2.8 KiB
Awk
Executable File
131 lines
2.8 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 2024-04-04"
|
|
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
|
|
topnav_phase = "year.mid"; # topnav name to use (-H topnav=topnav_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
|
|
topnav_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: 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 "'we did not find:", year_arg "'";
|
|
print "-E";
|
|
print "215";
|
|
exit
|
|
|
|
} else if (process_next_line) {
|
|
# no next line year_arg is the last line
|
|
topnav_phase = "year.last";
|
|
}
|
|
|
|
# output the topnav phase name
|
|
#
|
|
print "-H";
|
|
print "topnav=" topnav_phase;
|
|
}
|