We move the "_Thanks for the help_" out from under the "Entries"
menu and under the "About" menu to better balance the menus.
Besides, "_Thanks for the help_" is more **about** the IOCCC itself.
We fixed some of minor inconsistencies in the `faq.md` markdown.
We added "Q x.y:" to the Table of Contents and FAQ titles,
in part to verify the order, and in part to help someone find
their way while inside the FAQ content.
Reduced several FAQ titles that were wrapping onto a 2nd line
at the standard window width.
Perform `make faq` to perform the above and test under macOS.
The faq entries have been reordered to match the same order
as the Table of Contents.
Added missing "Why were some filenames changed?" FAQ to the
Table of Contents.
Fixed a number of FAQ headers to use the "Q:" at the start.
Added double 1/2 lines between sections.
Made use of double empty lines consistent.
Added some missing "Jump to top" lines.
Shortened 2 very long FAQ long titles.
Perform `make faq` to perform the above and test under macOS.
TODO: Check the HTML with the link checker.
The `bin/entry2csv.sh` too was modified to leave \uxxxx
in awards alone and to NOT convert it.
Changed `bin/entry2csv.sh` VERSION from "1.5.1 2024-10-10"
to "1.6 2024-10-14".
Performed `make entry2csv` and `make csv2entry` to test the above
under macOS.
We now use `jstrdecode -N` without the need for
using `-T` with `bin/jval-wrapper.sh`.
Now depending on `jstrdecode(1)` with a minimum version
of "1.2.3" (was "1.2.0").
Added information about bin tools missing from `bin/README.md`.
Changed `bin/entry2csv.sh` VERSION from "1.5 2024-10-08"
to "1.5.1 2024-10-10".
Changed `bin/gen-authors.sh` VERSION from "1.14 2024-10-08"
to "1.14.1 2024-10-10".
Changed `bin/gen-location.sh` VERSION from "1.8 2024-10-08"
to "1.8.1 2024-10-10".
Changed `bin/gen-years.sh` VERSION from "1.6 2024-10-08"
to "1.6.1 2024-10-10".
Changed `bin/output-index-author.sh` VERSION from "1.10 2024-10-08"
to "1.10.1 2024-10-10".
Changed `bin/output-year-index.sh` VERSION from "1.6 2024-10-08"
to "1.6.1 2024-10-10".
Changed `bin/subst.entry-index.sh` VERSION from "1.8 2024-10-08"
to "1.8.1 2024-10-10".
Perform `make all_jfmt` to format canoncailly, all `entry.json`
and all `author/author_handle.json` files. A side effect of this
is to replace all of the fancy non-ASCII characters within
JSON strings with their "bashslash-u hex hex hex hex" equivalent.
Thanks to the newly fixed `jstrdecode(1)` tool, there was
no change in the HTML output.
Perform `make www` to perform the above and test under macOS.
Use ``jstrdecode(1)` to decode certain JSON strings,
such as "Full Name", "Abstract", "Award" and "Organization".
We now rely on a correctly decoding `jstrdecode(1)`. The bin tools
now rely on `jstrdecode` with the following version or later:
> jstrdecode version: 1.0.6 2024-10-08
> JSON parser version: 1.1.7 2024-10-08
Removed `bin/unicode-fix.sed` and `bin/unicode-chk.sh`.
Removed `make unicode_chk`.
Fixed a few rule dependencies on `Makefile`.
Added information about `bin/jval-wrapper.sh` in `bin/README.md`.
Changed `bin/csv2entry.sh` VERSION from "1.4 2024-09-27"
to "1.5 2024-10-08".
Changed `bin/entry2csv.sh` VERSION from "1.4 2024-09-27"
to "1.5 2024-10-08".
Changed `bin/gen-authors.sh` VERSION from "1.13 2024-09-23"
to "1.14 2024-10-08".
Changed `bin/gen-location.sh` VERSION from "1.7 2024-09-23"
to "1.8 2024-10-08".
Changed `bin/gen-years.sh` VERSION from "1.5 2024-09-23"
to "1.6 2024-10-08".
Changed `bin/jfmt-wrapper.sh` VERSION from "1.2 2024-09-23"
to "1.3 2024-10-08".
Changed `bin/jprint-wrapper.sh` VERSION from "1.3 2024-09-23"
to "1.4 2024-10-08".
Changed `bin/jval-wrapper.sh` VERSION from "1.1 2024-09-23"
to "1.2 2024-10-08".
Changed `bin/output-index-author.sh` VERSION from "1.9 2024-09-23"
to "1.10 2024-10-08".
Changed `bin/output-year-index.sh` VERSION from "1.5 2024-09-23"
to "1.6 2024-10-08".
Changed `bin/subst.entry-index.sh` VERSION from "1.7 2024-09-27"
to "1.8 2024-10-08".
Perform `make www` to perform the above and test under macOS.
We add an initial "_title_" and "_abstract_" to all entry `.entry.json` files.
The `bin/csv2entry.sh` tool reads the `summary.csv` file and
loads the "_title_" and "_abstract_" to entry `.entry.json` files.
Changed `bin/csv2entry.sh` VERSION from "1.3 2024-09-23"
to "1.4 2024-09-27".
Perform `make csv2entry` to perform the above and test under macOS.
The `bin/cvt-submission.sh` tool adds "_title_" and "_abstract_" to the
.entry.json based on the `.info.json` file.
Changed `bin/cvt-submission.sh` VERSION from "1.2 2024-09-23"
to "1.3 2024-09-27".
The `bin/entry2csv.sh` tool forms the `summary.csv` file
based on the "_title_" and "_abstract_" fields found in .entry.json files.
Changed `bin/entry2csv.sh` VERSION from "1.3 2024-09-23"
to "1.4 2024-09-27".
Perform `make entry2csv` to perform the above and test under macOS.
Added `-H` and `header=with-header-3` to the `bin/md2html.cfg`
for the configuration entry for `[12][0-9][0-9][0-9]/*/README.md`.
Changed `bin/md2html.sh` VERSION from "1.6 2024-08-17"
to "1.7 2024-09-27".
All entry `index.html` files now list the "_abstract_" in a new
`<h3>abstract</h3>` header.
Changed `bin/subst.entry-index.sh` VERSION from "1.6 2024-09-23"
to "1.7 2024-09-27".
Removed `summary.csv`.
Added `summary.csv` and `summary.numbers` to `.gitignore`.
Sorted the result with `bin/sgi.sh`.
Perform `make quick_www` to perform the above and test under macOS.
Perform `make www` to perform the above and test under macOS.
When viewed on GitHub,
[summary.csv](https://github.com/ioccc-src/temp-test-ioccc/blob/master/summary.csv)
reported:
> We can make this file beautiful and searchable if this error is corrected: Illegal quoting in line 16.
This is an attempt to fix that problem.
NOTE: We are not sure what is wrong with the quotes on line 16.
Perhaps any quotes with the file is a problem and GitHub just reported
the first problem?
This file will go away, but is a good start for the
title and abstract for entries.
The contents started from
[summary.txt](https://github.com/ioccc-src/winner/blob/master/all/summary.txt).
We converted the contents into a CSV format. Moreover the abstract was
limited to no more than 63 characters. All comma's (",") within the
abstract were removed to make converting to CSV easier.
NOTE: This is a tempory file that will **GO AWAY** once the all of the
`.entry.json` files have been updated with a title and abstract.
We add `make unicode_chk` to run `bin/unicode-chk.sh` to check all
`.entry.json` and all `author/author_handle.json` files.
Added a JSON format check by `jparse(1)` to `bin/unicode-chk.sh`.
Changed `bin/unicode-chk.sh` VERSION from "1.0 2024-09-23"
to "1.1 2024-09-24".
Performed `make unicode_chk` to test the above under macOS.
If the [jsp tool](https://github.com/kjozsa/jsp) is
installed, it will be used in favor of the [JSONPath.sh
tool](https://github.com/lcn2/JSONPath.sh).
Updated `bin/jfmt-wrapper.sh`, `bin/jprint-wrapper.sh`, and
`bin/jval-wrapper.sh` to use jsp if found. These 3 tools may be given
`-t tool` where tool is either "_jsp_" or "_JSONPath.sh_" for force the
use of the tool. They also use `-Q` to perform a quick check tool using
trivial input.
The `bin/jval-wrapper.sh` tool had been simplified. The `-w`,
`-i` and `-u` options are gone. Instead it has:
```
-b print only values (def: print both JSON member and JSON value)
-q remove enclosing double quotes (def: keep any enclosing double quotes)
```
Add `make all_jfmt` to Makefile to canonically format all entry and
author handle JSON files.
A sed script `bin/unicode-fix.sed` has been added that converts
JSON string "_\u[0-9A-Fa-f]{4}_" encoding that may arise from known
JSON data. This is done as a work-a-round for [Unicode / UTF-8
issues](https://github.com/xexyl/jparse/issues/13) with `jstrdecode(1)`.
The `bin/unicode-chk.sh` tool, if given on file arguments, scans
all `.entry.json` and `author/author_handle.json` JSON files to be
sure that, after `bin/unicode-fix.sed` processing, no JSON string
"_\u[0-9A-Fa-f]{4}_" encodings remain.
Removed all `-j jparse` args from commands. Instead the `jparse(1)`
tool is looked for along $PATH.
Added `combine_author_handle.sh` tool to transform all of the
`author/author_handle.json` files into a temporary as a single JSON
file so that `bin/jval-wrapper.sh` tool may be used to extract all
"_sort_word_" or all "_entry_id_" values.
Changed `bin/all-jfmt.sh` VERSION from "1.0 2024-08-31"
to "1.1 2024-09-24".
Changed `bin/csv2entry.sh` VERSION from "1.2.3 2024-08-30"
to "1.3 2024-09-23".
Changed `bin/cvt-submission.sh` VERSION from "1.1 2024-08-31"
to "1.2 2024-09-23".
Changed `bin/entry2csv.sh` VERSION from "1.2.1 2024-08-17"
to "1.3 2024-09-23".
Changed `bin/gen-authors.sh` VERSION from "1.12 2024-08-18"
to "1.13 2024-09-23".
Changed `bin/gen-location.sh` VERSION from "1.6 2024-08-18"
to "1.7 2024-09-23".
Changed `bin/gen-status.sh` VERSION from "1.6 2024-08-17"
to "1.7 2024-09-23".
Changed `bin/gen-years.sh` VERSION from "1.4 2024-08-17"
to "1.5 2024-09-23".
Changed `bin/jfmt-wrapper.sh` VERSION from "1.1 2024-08-20"
to "1.2 2024-09-23".
Changed `bin/jprint-wrapper.sh` VERSION from "1.1 2024-08-20"
to "1.3 2024-09-23".
Changed `bin/jval-wrapper.sh` VERSION from "1.0.4 2024-08-20"
to "1.1 2024-09-23".
Changed `bin/manifest.entry.json.awk` VERSION from "1.1.2 2024-07-28"
to "1.2 2024-09-17".
Changed `bin/output-index-author.sh` VERSION from "1.8 2024-08-17"
to "1.9 2024-09-23".
Changed `bin/output-year-index.sh` VERSION from "1.4.4 2024-08-05"
to "1.5 2024-09-23".
Changed `bin/subst.entry-index.sh` VERSION from "1.5 2024-08-13"
to "1.6 2024-09-23".
Added `bin/combine_author_handle.sh` VERSION "1.0 2024-09-23".
Added `bin/unicode-chk.sh` VERSION "1.0 2024-09-23".
Added `bin/unicode-fix.sed` VERSION "1.0 2024-09-23".
Perform `make www` to perform the above and test under macOS.
FYI: On our MacBook Pro, `make www` took:
```
make www 631.79s user 264.95s system 94% cpu 15:53.71 total
```
FYI: On our MacBook Pro, `make quick_www` took:
```
make quick_www 81.43s user 58.26s system 102% cpu 2:16.02 total
```
We added ._.DS_Store to `.gitignore`, and generalized the `/archive/historic/`
year sub-directories into a single pattern line.
We fix `bin/sgi.sh` to properly sort, canonically, `.gitignore` files
including `._.DS_Store` lines. The tool now stories stdin content
into a temporary file, then prints 6 classes of files from the
temporary file to stdout.
Changed `bin/sgi.sh` VERSION from "1.1.3 2024-08-18"
to "1.2 2024-09-05".
Fixed a bug in `bin/sort.gitignore.sh` that prevented it from
finding the `bin/sgi.sh` tool.
Changed `bin/sort.gitignore.sh` VERSION from "1.1.8 2024-07-28"
to "1.2 2024-09-05".
Performed `make sort_gitignore` to test the above under macOS.
NOTE: The above canonically sorted:
- 2004/hibachi/.gitignore
- 2005/mynx/.gitignore
- 2011/vik/.gitignore
- 2013/dlowe/.gitignore
- 2020/otterness/.gitignore
Added a new "FAQ 1.4 - What is the **Great Fork Merge**?"
and a new "FAQ 6.18 - I do not understand the IOCCC, can you explain it
to me?".
Updated "FAQ 0.11: How can I validate any JSON document?"
with new jparse info.
Performed `make gen_top_html` to accomplish the above and to test under macOS.
Added `bin/all-jfmt.sh` tool.
Added `make all_jfmt` rule to `Makefile`.
Added `make all_jfmt` to `make www`.
NOTE: Because the `bin/all-jfmt.sh` tool is slow, we did not
add `make all_jfmt` to `make quick_www`.
NOTE: Once the `jprint(1)` tool, as described in [issue
repo](https://github.com/xexyl/jparse), this tool (and a number of other
tools) will run **MUCH FASTER**.
Performed `make www` to accomplish the above and to test under macOS.
FYI: The `make www` takes:
make www 396.29s user 523.94s system 102% cpu 15:00.82 total
This command will become somewhat faster when the `jprint(1)` tool is ready.
It will become **MUCH** faster when the `jval(1)` tool is ready.
As a comparison, `make quick_www` takes only:
make quick_www 43.63s user 53.87s system 109% cpu 1:29.17 total
The `bin/cvt-submission.sh` tool is now complete.
Changed `bin/cvt-submission.sh` VERSION from "1.0.5 2024-08-17"
to "1.1 2024-08-31".
Make minor error message fix to `bin/csv2entry.sh`.
Performed `make quick_www` to accomplish the above and to test under macOS.
TODO: Complete the `bin/csv2entry.sh` tool.
We fixed `bin/csv2entry.sh` to output entry `.entry.json`
files in JSON canonical form.
Changed `bin/csv2entry.sh` VERSION from "1.2.2 2024-08-17"
to "1.2.3 2024-08-30".
Performed `make quick_www` to accomplish the above and to test under macOS.
The PR #2662 introduced TAB characters into entry `.entry.json` files
and mal-formatted `author_handle` JSON members.
To restore canonical JSON formatting, we did:
```sh
find [12][90][89012][0-9] -name .entry.json -print | xargs -n 1 bin/jfmt-wrapper.sh -v 1
```
BTW: We have written a tool, currently untested, to do this. We plan to also
add a new fix JSON format rule to the top level `Makefile`.
Performed `make www` to accomplish the above and to test under macOS.
The core of `bin/gen-other-html.sh` code that converts entry non-README.md
into HTML has been moved into a new tool: `bin/othermd2html.sh`.
The `bin/othermd2html.sh` tool will be useful to the `bin/cvt-submission.sh`
tool that is under development.
Added info about `bin/othermd2html.sh` to `bin/README.md`.
Changed `bin/gen-other-html.sh` VERSION from "1.4.1 2024-08-18"
to "1.5 2024-08-27".
HTML produced by `bin/gen-other-html.sh` now uses a "jump to" mid-bar
test now shows the `YYYY/dir/index.html` link text (with `YYYY/dir/` added).
Performed `make gen_other_html` to accomplish the above and to test under macOS.
Performed `make gen_top_html` to accomplish the above and to test under macOS.
For some reason, PR #2646 was made on top of the code base for pr #2645.
If we accept PR #2646 as is, we perform PR #2645 that was previously
rejected. This change is an attempt to avoid this.
A number of rules have been moved from entry `Makefile`s into the
`1337.mk` include file to make it easier for these common rules to be
updated or modified globally (by modifying the `1337.mk` include file).
The entry level `Makefile`s are now similar in form to the
/Makefile.example](https://github.com/ioccc-src/mkiocccentry/blob/master/Makefile.example)
file from the other repo.
The following make rules were moved into the `1337.mk` include file:
- `make indent.c`
- `make install`
- `make diff_orig_prog`
- `make diff_prog_orig`
- `make diff_alt_prog`
- `make diff_prog_alt`
This simplifies the entry level `Makefile`s so that they mostly reflect
the specifics of the particular entry.
Mentioned in FAQ 4.2, that the make diff rules are in the `1337.mk` include file.
Fixed invalid TAB character in `faq.md`.
Removed `make clean` directives that removed `indent.c`. This file is now
removed via `make indent_clean`, a clean rule that also removes `indent.c`.
Removed `make clobber` directives that removed sandwich, This file is now
removed via `make indent_clobber`, a clean rule that also removes `sandwich`.
Added `make indent_clean` and `make indent_clobber` rules into the top level
`Makefile` and the year level `YYYY/Makefile`.
Performed `make quick_www` to accomplish the above and to test under macOS.
We add links to jump to the top of the file at the bottom of FAQ
sections.
Improved Makefile samples for FAQ 0.3.
Performed `make faq` to accomplish the above and to test under macOS.
There is also a fix that fixes a format problem with
the `author_set`.
Used `bn/jfmt-wrapper.sh` to reformat JSON with:
```sh
find * -name '*.json' -print0 | xargs0 -n1 -t bin/jfmt-wrapper.sh
```
In keeping with [GH-issues 931](https://github.com/ioccc-src/mkiocccentry/issues/931),
we remove the use of `-T` from the `JSONPATH.sh` tool. This will implement JSON
formatting using multiples of 4 ASCII spaces and without TABs.
Changed `bin/jfmt-wrapper.sh` VERSION form "1.0.2 2024-08-08"
to "1.1 2024-08-20".
Changed `bin/jprint-wrapper.sh` VERSION form "1.0.2 2024-08-08"
to "1.1 2024-08-20".
Changed `bin/jval-wrapper.sh` VERSION form "1.0.3 2024-08-11"
to "1.0.4 2024-08-20".
Fixed how `-Q` quick mode works in `bin/gen-other-html.sh`
so that the target HTML file is not touched needlessly.
Changed `bin/gen-other-html.sh` VERSION from "1.4 2024-08-17"
to 1.4.1 2024-08-18".
Performed `quick_other_html` to test the above under macOS.
Performed `gen_other_html` to test the above under macOS.
We use the `bin/jval-wrapper.sh` tool to obtain information from JSON
files instead of attempting using a "GROSS HACK" that involved using
`grep(1)` (and friends) as those "GROSS HACK"s assumed that the layout of
the JSON was canonical. The `bin/jval-wrapper.sh` tool is able to deal
with various layouts of JSON including non-canonical layouts. Moreover,
by using the `bin/jval-wrapper.sh` tool we greatly reduce the places in
bin tools that contain "GROSS HACK"s.
Adjusted `bin/gen-status.sh` to use `bin/jval-wrapper.sh`.
Changed `bin/gen-status.sh` VERSION from "1.5.8 2024-08-05"
to "1.6 2024-08-17".
Performed `make gen_status` to test the above under macOS.
Adjusted `bin/gen-years.sh` to use `bin/jval-wrapper.sh`.
Changed `bin/gen-years.sh` VERSION from "1.3.7 2024-08-05"
to "1.4 2024-08-17".
Performed `make gen_years` to test the above under macOS.
Adjusted `bin/output-index-author.sh` to use `bin/jval-wrapper.sh`.
Changed `bin/output-index-author.sh` VERSION from "1.7.3 2024-08-05"
to "1.8 2024-08-17".
Performed `make entry_index` to test the above under macOS.
Added `make quick_year_index` to generate year level index.html files
when year level `YYYY/README.md` is newer.
The `make quick_www` calls `quick_year_index` instead of `make gen_year_index`.
The `bin` directory is now sat as `BIN_PATH=$TOPDIR/bin`, where
`$TOPDIR` is determined by top of the git repo (as determined by
the command: `git rev-parse --is-inside-work-tree`) and potentially
modified by `-d topdir`. After `cd $TOPDIR`, we set `BIN_DIR=bin`.
All tools from this repo are now assumed to under "$BIN_DIR". Removed
command like options such as `-T md2html.sh`, and `-p tool` that used
to be able to change the location of a `bin` tool.
Changed `bin/gen-authors.sh` VERSION from "1.11 2024-08-13"
to "1.12 2024-08-18".
Changed `bin/gen-location.sh` VERSION from "1.5 2024-08-17"
to "1.6 2024-08-18".
Changed `bin/readme2index.sh` VERSION from "1.2.7 2024-08-05"
to "1.3 2024-08-17".
Modified `bin/all-run.sh` to use the `bin` directory mechanism.
Modified `bin/all-years.sh` to use the `bin` directory mechanism.
Modified `bin/gen-other-html.sh` to use the `bin` directory mechanism.
Modified `bin/gen-year-index.sh` to use the `bin` directory mechanism.
Modified `bin/md2html.sh` to use the `bin` directory mechanism.
Modified `bin/quick-readme2index.sh` to use the `bin` directory mechanism.
Modified `bin/readme2index.sh` to use the `bin` directory mechanism.
Changed `bin/all-run.sh` VERSION from "1.3.6 2024-08-05"
to "1.4 2024-08-17".
Changed `bin/all-years.sh` VERSION from "1.0.5 2024-08-05"
to "1.1 2024-08-17".
Changed `bin/gen-other-html.sh` VERSION from "1.3 2024-08-11"
to "1.4 2024-08-17".
Changed `bin/gen-year-index.sh` VERSION from "1.1.2 2024-08-05"
to "1.2 2024-08-17".
Changed `bin/quick-readme2index.sh` VERSION from "1.1.7 2024-08-05"
to "1.2 2024-08-17".
Changed `bin/md2html.sh` VERSION from "1.5.5 2024-08-05"
to "1.6 2024-08-17".
Added some whitespace in the form of empty lines to tools.
Made checks for tools under `bin` directory more consistent.
When using `-Q` (quick mode) and the prerequisite files are newer,
we force the target to be touched so that a later run will not
have to build the target HTML file.
Performed `make quick_www` to test the above under macOS.
Performed `make www` to test the above under macOS.
We use the `bin/jval-wrapper.sh` tool to obtain information from JSON
files instead of attempting using a "GROSS HACK" that involved using
`grep(1)` (and friends) as those "GROSS HACK"s assumed that the layout of
the JSON was canonical. The `bin/jval-wrapper.sh` tool is able to deal
with various layouts of JSON including non-canonical layouts. Moreover,
by using the `bin/jval-wrapper.sh` tool we greatly reduce the places in
bin tools that contain "GROSS HACK"s.
Adjusted `bin/gen-location.sh` to use `bin/jval-wrapper.sh`.
Added `-Q` option to `bin/gen-location.sh` to not form
`location.html` when the `location.html` file is newer than all
`author/author_handle.json` files.
Changed `bin/gen-location.sh` VERSION from "1.4.5 2024-08-05"
to "1.5 2024-08-15".
Performed `make location` to test the above under macOS.
Added `make quick_location` rule to the top level `Makefile`
to run `bin/gen-location.sh` with `-Q`.
Changed `make quick_www` use `make quick_location`.
Performed `make quick_location` to test the above under macOS.
Performed `make quick_www` to test the above under macOS.
Performed `make www` to test the above under macOS.
We make sure that when we uniq, we sort with `LC_ALL=C` as in:
> LC_ALL=C uniq ...
Changed `bin/csv2entry.sh` VERSION from "1.2.1 2024-08-17"
to "1.2.2 2024-08-17".
Performed `make csv2entry` to test the above under macOS.
We make sure that when we sort, we sort with `LC_ALL=C` as in:
> LC_ALL=C sort ...
Changed `bin/entry2csv.sh` VERSION from "1.2 2024-08-13"
to "1.2.1 2024-08-17".
Performed `make entry2csv` to test the above under macOS.
Changed `bin/csv2entry.sh` VERSION from "1.2 2024-08-13"
to "1.2.1 2024-08-17".
Performed `make csv2entry` to test the above under macOS.
Changed `bin/cvt-submission.sh` VERSION from "1.0.4 2024-08-11"
to "1.0.5 2024-08-17".
Changed `bin/gen-sitemap.sh` VERSION from "1.3.13 2024-08-05"
to "1.3.14 2024-08-19".
Changed `bin/new-dir.sh` VERSION from "1.3.1 2024-08-11"
to "1.3.2 2024-08-17".
Performed `make www` to test the above under macOS.
We use the `bin/jval-wrapper.sh` tool to obtain information from JSON
files instead of attempting using a "GROSS HACK" that involved using
`grep(1)` (and friends) as those "GROSS HACK"s assumed that the layout of
the JSON was canonical. The `bin/jval-wrapper.sh` tool is able to deal
with various layouts of JSON including non-canonical layouts. Moreover,
by using the `bin/jval-wrapper.sh` tool we greatly reduce the places in
bin tools that contain "GROSS HACK"s.
Adjusted `bin/subst.entry-index.sh` to use `bin/jval-wrapper.sh`.
Changed `bin/subst.entry-index.sh` VERSION from "1.4 2024-08-09"
to "1.5 2024-08-13".
Adjusted `bin/entry2csv.sh` to use `bin/jval-wrapper.sh`.
Changed `bin/entry2csv.sh` VERSION from "1.1.1 2024-07-22"
to "1.2 2024-08-13".
Performed `make entry2csv` to test the above under macOS.
Adjusted `bin/csv2entry.sh` to use `bin/jval-wrapper.sh`.
Changed `bin/entry2csv.sh` VERSION from "1.1.1 2024-07-22"
to "1.2 2024-08-13".
Performed `make csv2entry` to test the above under macOS.
We use the `bin/jval-wrapper.sh` tool to obtain information from JSON
files instead of attempting using a "GROSS HACK" that involved using
`grep(1)` (and friends) as those "GROSS HACK"s assumed that the layout of
the JSON was canonical. The `bin/jval-wrapper.sh` tool is able to deal
with various layouts of JSON including non-canonical layouts. Moreover,
by using the `bin/jval-wrapper.sh` tool we greatly reduce the places in
bin tools that contain "GROSS HACK"s.
Improve `-v 1` debug messages for `bin/gen-authors.sh` to give some
level of progress instead of a long pause. Improve `-v 3` as well.
While the `bin/jval-wrapper.sh` tool is slower, it is also more accurate
in that various non-canonical JSON layouts will not confuse the tool.
Apologies for the slowdown. Once the `jval(1)` tool is ready, it should
be faster than the `JSONPath.sh` tool that `bin/jval-wrapper.sh` uses now.
Added `-Q` to `bin/jval-wrapper.sh` tool to perform a quick exit if
`authors.html` is newer than all `author/author_handle.json` files.
Updated the top level `Makefile` by adding `make quick_authors` rule
that will invoke `bin/gen-authors.sh -Q`. Also changed `make quick_www`
to call `make quick_authors` instead of `make authors`.
Changed `bin/gen-authors.sh` VERSION from "1.10.7 2024-08-05"
to "1.11 2024-08-13".
Make a minor improvement in the usage message for `bin/gen-other-html.sh`.
Performed `make www` to test the above under macOS.
Performed `make quick_www` to test the above under macOS.
This is a checkpoint on `bin/cvt-submission.sh` development.
The `bin/cvt-submission.sh` tool now forms a compressed tarball
to contain submission files that will be modified or removed
by the tool. The compressed tarball formed will be of the form
`/var/tmp/YYYY_dir.save.YYYYMMDD.hhmmss.tar.bz2`.
Added `-u` facility to `bin/jval-wrapper.sh` to strip unnecessary
leading path elements.
Changed `bin/jval-wrapper.sh` VERSION from "1.0.2 2024-08-08"
to "1.0.3 2024-08-11".
Changed `bin/cvt-submission.sh` VERSION from "1.0.3 2024-08-09"
to "1.0.4 2024-08-11".
Performed `make quick_www` to test the above under macOS.
We changed `author/README.md` to refer to FAQs instead
of trying to duplicate FAQ information.
Added `author/README.md` to `bin/md2html.cfg`.
Changed `bin/gen-top-html.sh` VERSION from "1.4.8 2024-08-05"
to "1.4.9 2024-08-11".
Performed `make gen_top_html` to accomplish the above and to test under macOS.
We add `-Q` to `bin/gen-other-html.sh` to add a mode
that will only update an entry non-index.html if it
is missing or out of date.
Added `make quick_other_html` that calls `bin/gen-other-html.sh`
with the `-Q` quick mode option.
Changed `bin/gen-other-html.sh` VERSION from "1.2.6 2024-08-05"
to "1.3 2024-08-11".
We improve debug messages in `bin/new-dir.sh`.
Updated `bin/README.md` with more information about
the recently added utilities.
Changed `bin/new-dir.sh` VERSION from "1.3 2024-08-11"
to "1.3.1 2024-08-11".
Performed `make quick_www` to accomplish the above and to test under macOS.
We rename `bin/add-dir.sh` to `bin/new-dir.sh`.
The `bin/README.md` is updated accordingly.
Changed `bin/new-dir.sh` VERSION from "1.2 2024-08-09"
to "1.3 2024-08-11".
Performed `make www` to accomplish the above and to test under macOS.
We improve `bin/add-dir.sh` by calling `make genpath` so
that the `.allyear` will be up to date.
Changed `bin/add-dir.sh` VERSION from "1.1.1 2024-07-28"
to "1.2 2024-08-09".
Checkpoint `bin/cvt-submission.sh`: a work in progress.
Added more files to `template/entry` in support of the
checkpoint of the `bin/cvt-submission.sh` tool.
Changed `bin/cvt-submission.sh` VERSION from "1.0.2 2024-08-05"
to "1.0.3 2024-08-09".
Performed `make www` to accomplish the above and to test under macOS.
We improve entry `index.html` navbar links by allowing the
next and previous to link across years.
The `make genpath` now forms `.allyear`, which is a
sorted contamination of all YYY level `.year` files.
Updated `make help` to reflect the `make genpath` functionality.
Updated FAQ 6.8 to talk about the `.allyear` file.
Fixed links to `.top` and `.allyear' to refer to GitHub.
Changed `bin/subst.entry-navbar.awk` VERSION from "1.2 2024-03-02"
to "1.3 2024-08-02".
Changed `bin/subst.entry-index.sh` VERSION from "1.3.5 2024-08-05"
to "1.4 2024-08-09".
Performed `make www` to accomplish the above and to test under macOS.
The JSON related wrapper tools do not need to cd to topdir, so we
removed ahe code that finds and cd's to the top directory of the repo.
The tools that will call JSON related wrapper tools will have already
have moved to the top directory (topdir) of the repo.
Changed `bin/jfmt-wrapper.sh` VERSION from "1.0.1 2024-08-05"
to "1.0.2 2024-08-08".
Changed `bin/jprint-wrapper.sh` VERSION from "1.0.1 2024-08-05"
to "1.0.2 2024-08-08".
Changed `bin/jval-wrapper.sh` VERSION from "1.0.1 2024-08-05"
to "1.0.2 2024-08-08".
Performed `make quick_www` to accomplish the above and to test under macOS.
Converted `bin/jfmt-wrapper.sh` to use the `jfmt(1)` tool
now that the debug message problem was fixed.
Changed `bin/jfmt-wrapper.sh` VERSION from "1.0.1 2024-08-05"
to "1.1 2024-08-08".
Performed `make quick_www` to accomplish the above and to test under macOS.
With only 1 arg, `bin/jval-wrapper.sh` will print all JSON values found.
Changed `bin/jval-wrapper.sh` VERSION from "1.0 2024-08-05"
to "1.0.1 2024-08-05".
Added checkpoint for `bin/cvt-submission.sh` as the code
is in development.
Changed `bin/cvt-submission.sh` VERSION from "1.0.1 2024-07-28"
to "1.0.2 2024-08-05".
We have removed `-u repo_top_url` from tools. When it comes time
to perform the **Great Fork Merge**, we will have to modify
the `$REPO_TOP_URL` variable default, so `-u repo_top_url` won't
help with the transition.
Changed `bin/all-run.sh` VERSION from "1.3.5 2024-07-28"
to "1.3.6 2024-08-05".
Changed `bin/all-years.sh` VERSION from "1.0.4 2024-07-28"
to "1.0.5 2024-08-05".
Changed `bin/chk-entry.sh` VERSION from to "1.1.9 2024-07-28"
to "1.1.10 2024-08-05".
Changed `bin/gen-authors.sh` VERSION from "1.10.6 2024-07-28"
to "1.10.7 2024-08-05".
Changed `bin/gen-location.sh` VERSION from "1.4.4 2024-07-28"
to "1.4.5 2024-08-05".
Changed `bin/gen-other-html.sh` VERSION from "1.2.5 2024-07-28"
to "1.2.6 2024-08-05".
Changed `bin/gen-sitemap.sh` VERSION from "1.3.12 2024-07-28"
to "1.3.13 2024-08-05".
Changed `bin/gen-status.sh` VERSION from "1.5.7 2024-07-28"
to "1.5.8 2024-08-05".
Changed `bin/gen-top-html.sh` VERSION from "1.4.7 2024-07-28"
to "1.4.8 2024-08-05".
Changed `bin/gen-year-index.sh` VERSION from "1.1.1 2024-07-28"
to "1.1.2 2024-08-05".
Changed `bin/gen-years.sh` VERSION from "1.3.6 2024-07-28"
to "1.3.7 2024-08-05".
Changed `jfmt-wrapper.sh` VERSION from "1.3.7 2024-08-05"
to "1.0.1 2024-08-05".
Changed `bin/jprint-wrapper.sh` VERSION from "1.0 2024-07-28"
to "1.0.1 2024-08-05".
Changed `bin/md2html.sh` VERSION from "1.5.4 2024-07-28"
to "1.5.5 2024-08-05".
Changed `bin/output-index-author.sh` VERSION from "1.7.2 2024-07-28"
to "1.7.3 2024-08-05".
Changed `bin/output-index-inventory.sh` VERSION from "1.4.2 2024-07-28"
to "1.4.3 2024-08-05".
Changed `bin/output-year-index.sh` VERSION from "1.4.3 2024-07-28"
to "1.4.4 2024-08-05".
Changed `bin/pandoc-wrapper.sh` VERSION from "1.7.1 2024-07-28"
to "1.7.2 2024-08-05".
Changed `bin/quick-readme2index.sh` VERSION from "1.1.6 2024-07-28"
to "1.1.7 2024-08-05".
Changed `bin/readme2index.sh` VERSION from "1.2.6 2024-07-28"
to "1.2.7 2024-08-05".
Changed `bin/status2html.sh` VERSION from "1.4.2 2024-07-28"
to "1.4.3 2024-08-05".
Changed `bin/subst.default.sh` VERSION from "1.3.1 2024-07-28"
to "1.3.2 2024-08-05".
Changed `bin/subst.entry-index.sh` VERSION from "1.3.4 2024-07-28"
to "1.3.5 2024-08-05".
Changed `bin/subst.year-index.sh` VERSION from "1.1.4 2024-07-28"
to "1.1.5 2024-08-05".
Changed `bin/tar-entry.sh` VERSION from "1.3.9 2024-07-28"
to "1.3.10 2024-08-05".
Changed `bin/tar-year.sh` VERSION from "1.2.7 2024-07-28"
to "1.2.8 2024-08-05".
Changed `bin/untar-year.sh` VERSION from "1.0.3 2024-07-28"
to "1.0.4 2024-08-05".
Changed `bin/untar-entry.sh` VERSION from "1.0.3 2024-07-28"
to "1.0.4 2024-08-05".
Performed `make www` to accomplish the above and to test under macOS.
We form a wrapper for the `jval(1)`, a tool that allow the printing of JSON values.
We propose that the grammar used by JSONPath.sh(1):
> https://github.com/lcn2/JSONPath.sh
becomes the model for how `jval(1)` prints JSON values. Consider, for, example:
> JSONPath.sh -w -f 1984/mullender/.entry.json '$author_set..author_handle'
and in particular:
> JSONPath.sh -w -b -f 1984/mullender/.entry.json '$author_set..author_handle'
as a model of printing the `author_handle` values from the JSON `author_set` array.
See the following URL for more information.
> https://github.com/lcn2/JSONPath.sh?tab=readme-ov-file#jsonpath-patterns-and-extensions
It is time to say "**So long and thanks for all the fish**" to the `tmp/` directory.
Now that `bin/csv2entry.sh` and `bin/entry2csv.sh` are in working well, we
no longer need any of the tools nor data files under the tmp/` directory.
At this point, the `.entry.json` files AND `author/author_handle.json`
are considered "_truth_" under this repo.
BTW: We are developing the `bin/cvt-submission.sh` tool for the IOCCC
judges to convert the contents of a submission files `.auth.json` and
`.info.json` into `.entry.json` files AND `author/author_handle.json`
file content (new or modified). We are also planning to develop
a tool to validate an existing `.entry.json`: issuing warnings or
errors if problematic `.entry.json` data is discovered. We also have the
[chkentry(1)](https://github.com/ioccc-src/mkiocccentry/blob/master/chkentry.c)
tool (and especially much thanks to the `jparse.a` link library) to
validate `.auth.json` and `.info.json` files for a submission. With the
completion of he `bin/cvt-submission.sh` tool and the `.entry.json`
validator, as well as the `bin/csv2entry.sh` and `bin/entry2csv.sh`,
we will be able to maintain a set of coherent `.entry.json` files.`
Added FAQ 4.9 "What is the original source file?".
Added links for "dot_path" (and "dot_year" and "dot_top").
Clarify reasons why `OK_to_edit` might be set to `false`.
Performed `make www` to accomplish the above and to test under macOS.
Added `make markdown` to the top level `Makefile` to just build
the `markdown.html` file.
Sorted make rules that build individual HTML files.
Performed `make gen_top_html` to accomplish the above and to test under macOS.
Fixed a bug in `bin/gen-authors.sh` that corrupted author_handle links in
`authors.html.
Changed `bin/gen-authors.sh` VERSION from "1.10.5 2024-07-28"
to "1.10.6 2024-07-28".
Performed `make make gen_authors` to accomplish the above and to test under macOS.
Added wrappers for `jfmt(1)` and `jprint(1)` that
will use `JSONPath.sh` temporarily in the mean time.
FYI: Please do **NOT** be concerted by these tools. This is a workaround
prior to the **Great Fork Merge** that will allow us to, when jfmt(1)` and
`jprint(1)` exist, easily modify these wrapper tools to use those tools
when they are available. But as we do **NOT** want to delay IOCCC28,
this workaround will do for now.
The shell variable `$REPO_URL` was often set to
`https://github.com/ioccc-src/temp-test-ioccc/blob/master` which was
not consistent with the variable name. In some cases the `$REPO_URL`
was used as the top level path for a git repo (w/o the `/blob/master`),
and in most cases was used as a GitHub URL path under which files may
be found (with `/blob/master`).
We change the shell variable `$REPO_URL` to be `$REPO_TOP_URL` and
use the value `https://github.com/ioccc-src/temp-test-ioccc`, w/o
the `/blob/master`, and adjust places where the GitHub URL path (with
`/blob/master`) is needed. A new shell variable `$REPO_URL` will contain
the `https://github.com/ioccc-src/temp-test-ioccc/blob/master` (with
`/blob/master`).
In tools that use `-u` the option was changed from `repo_url` to
`repo_top_url`. The `-u repo_top_url` will set the
`$REPO_TOP_URL` shell variable (w/o the `/blob/master`), and then set
the variable `$REPO_URL` as `$REPO_TOP_URL//blob/master`.
Fixed a shellcheck issue with `bin/tar-entry.sh`.
Corrected name of shell variable `$AUTHOR_GUTHUB_USERNAME` to be
`$AUTHOR_GITHUB_USERNAME`.
The substitution symbol `%%REPO_URL%%` has used in markdown
files remains as before. That is, REPO_URL is set according
to the shell variable `$REPO_URL` which includes `/blob/master`).
Fixed broken `author_handle` links in `authors.html`.
NOTE: Except for correcting links `authors.html` as noted above,
no HTML content was modified by these changes.
Changed `bin/add-dir.sh`VERSION from "1.1 2024-07-23"
to "1.1.1 2024-07-28".
Changed `bin/all-run.sh`VERSION from "1.3.4 2024-05-24"
to "1.3.5 2024-07-28".
Changed `bin/all-years.sh`VERSION from "1.0.3 2024-04-13"
to "1.0.4 2024-07-28".
Changed `bin/chk-entry.sh`VERSION from "1.1.8 2024-07-06"
to "1.1.9 2024-07-28".
Changed `bin/cvt-submission.sh`VERSION from "1.0 2024-07-22"
to "1.0.1 2024-07-28".
Changed `bin/gen-authors.sh`VERSION from "1.10.4 2024-07-13"
to "1.10.5 2024-07-28".
Changed `bin/gen-location.sh`VERSION from "1.4.3 2024-07-13"
to "1.4.4 2024-07-28".
Changed `bin/gen-other-html.sh`VERSION from "1.2.4 2024-05-31"
to "1.2.5 2024-07-28".
Changed `bin/gen-sitemap.sh`VERSION from "1.3.11 2024-07-22"
to "1.3.12 2024-07-28".
Changed `bin/gen-status.sh`VERSION from "1.5.6 2024-07-22"
to "1.5.7 2024-07-28".
Changed `bin/gen-top-html.sh`VERSION from "1.4.6 2024-05-24"
to "1.4.7 2024-07-28".
Changed `bin/gen-year-index.sh`VERSION from "1.1 2024-04-16"
to "1.1.1 2024-07-28".
Changed `bin/gen-years.sh`VERSION from "1.3.5 2024-07-22"
to "1.3.6 2024-07-28".
Changed `bin/md2html.sh`VERSION from "1.5.3 2024-07-22"
to "1.5.4 2024-07-28".
Changed `bin/new-year.sh`VERSION from "1.3.1 2024-07-23"
to "1.3.2 2024-07-28".
Changed `bin/output-index-author.sh`VERSION from "1.7.1 2024-04-28"
to "1.7.2 2024-07-28".
Changed `bin/output-index-inventory.sh`VERSION from "1.4.1 2024-04-28"
to "1.4.2 2024-07-28".
Changed `bin/output-year-index.sh`VERSION from "1.4.2 2024-07-07"
to "1.4.3 2024-07-28".
Changed `bin/pandoc-wrapper.sh`VERSION from "1.7 2024-06-22"
to "1.7.1 2024-07-28".
Changed `bin/quick-readme2index.sh`VERSION from "1.1.5 2024-05-19"
to "1.1.6 2024-07-28".
Changed `bin/readme2index.sh`VERSION from "1.2.5 2024-05-19"
to "1.2.6 2024-07-28".
Changed `bin/sort.gitignore.sh`VERSION from "1.1.7 2024-04-28"
to "1.1.8 2024-07-28".
Changed `bin/status2html.sh`VERSION from "1.4.1 2024-04-28"
to "1.4.2 2024-07-28".
Changed `bin/subst.default.sh`VERSION from "1.3 2024-04-20"
to "1.3.1 2024-07-28".
Changed `bin/subst.entry-index.sh`VERSION from "1.3.3 2024-04-13"
to "1.3.4 2024-07-28".
Changed `bin/subst.year-index.sh`VERSION from "1.1.3 2024-04-13"
to "1.1.4 2024-07-28".
Changed `bin/tar-entry.sh`VERSION from "1.3.8 2024-07-23"
to "1.3.9 2024-07-28".
Changed `bin/tar-year.sh`VERSION from "1.2.6 2024-07-23"
to "1.2.7 2024-07-28".
Changed `bin/untar-entry.sh`VERSION from "1.0.2 2024-04-13"
to "1.0.3 2024-07-28".
Changed `bin/untar-year.sh`VERSION from "1.0.2 2024-04-14"
to "1.0.3 2024-07-28".
Performed `make www` to accomplish the above and to test under macOS.
Updated 1337 hacker rulz to version 7.
Added `1337.mk` to contain the updated 1337 hacker rulz (v7).
We use an optional include of `1337.mk` (or `../1337.mk`,
or `../../1337.mk`) to include the 1337 hacker rulz.
Changed `make deep_magic` to `make more_magic`.
Changed `bin/tar-entry.sh` VERSION from "1.3.7 2024-07-22"
to "1.3.8 2024-07-23".
Changed `bin/tar-year.sh` VERSION from "1.2.5 2024-07-22"
to "1.2.6 2024-07-23".
Add `make new_entry` to `YYYY/Makefile` and `template/Makefile.year`.
Change `make new_year` to use `sort -n -u`.
Made minor debug message fixes to `bin/new-year.sh`.
Changed `bin/new-year.sh` VERSION from "1.3 2024-07-23"
to "1.3.1 2024-07-23".
Improved `bin/add-dir.sh` to update `YYYY/Makefile` with
the new entry directory name.
Changed `bin/add-dir.sh` VERSION from "1.0 2024-07-21"
to "1.1 2024-07-23".
Performed `make www` to accomplish the above and to test under macOS.
The `bin/new-year.sh` will form `YYYY/README.md` from
the template file: `template/README.md.year`.
In `bin/new-year.sh` changed VERSION from "1.2 2024-07-21"
to "1.3 2024-07-23".
Performed `make www` to accomplish the above and to test under macOS.
We have added `bin/add-dir.sh` which is just a skeleton
script. For now, most of what is useful are the top level
comments describing what the command will and will NOT do.
These comments are work in progress and will be updated.
Updated `bin/README.md` to reflect these changes.
Changed usage introduction text to `bin/README.md`.
Made a minor comment change to `bin/add-dir.sh`.
The `bin/new-year.sh` toll will create the YYYY directory if needed.
Added `template/` directory for Makefile templates.
The `bin/new-year.sh` tool will create `YYYY/Makefile` from
the `template/Makefile.year` if needed.
The `YYYY/.year` and `YYYY/.filelist` will be created
for the new IOCCC year.
Change `bin/new-year.sh` VERSION from "1.1 2024-07-21"
to "1.2 2024-07-22".
Added a brief description of `bin/add-dir.sh` to `bin/README.md`
and updated `bin/new-year.sh` entry.
Added `make genpath_top` rule that just updates `.top`.
The existing `make genpath` also runs `make genpath_top`.
The `YYYY/README.md` will be created from a template
for the new IOCCC year.
Flag as error if `YYYY/README.md`, or `YYYY/YYYY.tar.bz2` is
missing in `bin/gen-years.sh`.
Warn if `YYYY/README.md`, or `YYYY/YYYY.tar.bz2` is an empty file
in `bin/gen-years.sh`.
Changed `bin/gen-years.sh` VERSION from "1.3.4 2024-07-13"
to "1.3.5 2024-07-23".
Performed `make www` to accomplish the above and to test under macOS.
In the spirit of pr #2589, we correct similar cases where the string
"status" instead of `$status` was being tested for a value.
In `bin/csv2entry.sh` changed VERSION from "1.1 2024-07-20"
to "1.1.1 2024-07-22".
In `bin/entry2csv.sh` changed VERSION from "1.1 2024-07-20"
to "1.1.1 2024-07-22".
In `bin/gen-sitemap.sh` changed VERSION from "1.3.10 2024-07-18"
to "1.3.11 2024-07-22".
In `bin/gen-status.sh` changed VERSION from "1.5.5 2024-07-18"
to "1.5.6 2024-07-22".
In `bin/md2html.sh` changed VERSION from "1.5.2 2024-07-18"
to "1.5.3 2024-07-22".
In `bin/tar-entry.sh` changed VERSION from "1.3.6 2024-04-28"
to "1.3.7 2024-07-22".
In `bin/tar-year.sh` changed VERSION from "1.2.4 2024-04-28"
to "1.2.5 2024-07-22".
Performed `make www` to accomplish the above and to test under macOS.
Always exclude `.auth.json` and `.info.json` files
in this repo.
This will be useful for IOCCC judges who are processing
submissions that are going to be announced as
new winning entries.
The `bin/new-year.sh` now uses make rules to perform some
if its actions. It modifies the `Makefile` to add the
new year to the `${YEARS}` make variable.
Changed `bin/new-year.sh` VERSION from "1.0 2024-07-21"
to "1.1 2024-07-21".
The top level `Makefile` will test of a Makefile for
a given year exits before calling a make rule for the year.
If there is no `YYYY/Makefile` a warning message is issued
Updated `bin/README.md` to reflect these changes.
Performed `make www` to accomplish the above and to test under macOS.
We are testing tools and need to maintain a 2024 test directory
so we have added 2024 to `.gitignore` temporarily.
We have added a TODO item to issue #2239 to undo the effect
of this commit and similar testing commits.