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.
Any canonicalization errors (e.g., sort error, mv error, etc.) will
cause an immediate `exit 8`.
The `bin/entry2csv.sh` tool will verify the author_handles referred
to by `author_wins.csv` and check the `author/cauthor_handle.json' file set.
The `bin/csv2entry.sh` tool will verify the author_handles referred
to by `author_wins.csv` and check the `author/cauthor_handle.json' file set.
In `bin/entry2csv.sh` changed VERSION from 1.0.4 2024-07-19"
"1.1 2024-07-20".
In `bin/csv2entry.sh` changed VERSION from to "1.0.1 2024-07-19"
"1.1 2024-07-20".
Performed `make www` to accomplish the above and to test under macOS.
TODO: Remove the `tmp` directory (after saving contents into private storage)
after testing and improvement of `bin/csv2entry.sh` and
`bin/entry2csv.sh is complete.
Fixed typo in `make csv2entry` rule in `Makefile`.
Fixed how exit codes triggered deep within loops are realized.
Regularize how raising an exit codes with loops are announced.
The use of `-n` does NOT prevent the creation of temporary files:
only permanent files are not modified with `-n`. NOTE: While
CSV files are NOT permanent files, they too are not modified with `-n`.
Fixed the canonical sort of `manifest.csv`. Now running
`bin/csv2entry.sh` immediately after `bin/entry2csv.sh` will not
modify `manifest.csv`.
If `bin/csv2entry.sh` encounters an author handle for which
there is no `author/author_handle.json` file, the tool will
complete the formation of the CSV file set and then exit 9
at the very end.
Fixed a few comments in `bin/csv2entry.sh` and `bin/entry2csv.sh`.
In `bin/entry2csv.sh` changed VERSION from "1.0.3 2024-07-19"
to "1.0.4 2024-07-19".
In `bin/csv2entry.sh` changed VERSION from "1.0 2024-07-19"
to "1.0.1 2024-07-19".
Performed `make www` to accomplish the above and to test under macOS.
TODO: Incorporate as needed, more processing of `author/author_handle.json` files.
TODO: Remove the `tmp` directory (after saving contents into private storage).
Added `make entry2csv` and `make csv2entry` to the help list.
Changed the "syntax" if the lines printed by `make help` so
that when one selects the entire line and pastes that line
into the shell, the trailing comment is not seen as a rule,
nor it is executed.
Made other minor formatting changes of `make help`.
Added `bin/csv2entry.sh` VERSION "1.0 2024-07-19".
In `bin/entry2csv.sh` changed VERSION from "1.0.2 2024-07-14"
to "1.0.3 2024-07-19".
The `bin/entry2csv.sh` tool converts all entry `.entry.json` files
into canonicalized `author_wins.csv`, `manifest.csv`, and `year_prize.csv`
CSV files.
The `bin/csv2entry.sh` tool converts `author_wins.csv`, `manifest.csv`,
and `year_prize.csv` (canonicalizing them if needed) `.entry.json`
files for all entries.
To change the manifest for one or more entries:
```sh
bin/entry2csv.sh -v 1
# ((import `manifest.csv` into a spreadsheet tool))
# ((modify in the spreadsheet tool, the content as needed))
# ((export the spreadsheet contents, as the CSV file `manifest.csv`))
bin/csv2entry.sh -v 1
make www
``
To change the award for one or more entries:
```sh
bin/entry2csv.sh -v 1
# ((import `year_prize.csv` into a spreadsheet tool))
# ((modify in the spreadsheet tool, the content as needed))
# ((export the spreadsheet contents, as the CSV file `year_prize.csv`))
bin/csv2entry.sh -v 1
make www
``
To change the authorship of one or more entries:
```sh
bin/entry2csv.sh -v 1
# ((import `author_wins.csv` into a spreadsheet tool))
# ((modify in the spreadsheet tool, the content as needed))
# ((export the spreadsheet contents, as the CSV file `author_wins.csv`))
bin/csv2entry.sh -v 1
# ((modify winning_entry_set of `author/author_handle.json` files as needed))
make www
``
Performed `make www` to accomplish the above and to test under macOS.
TODO: Review and improve/expand as needed, changes that were made to `bin/README.md`.
TODO: Remove the `tmp` directory (after saving contents into private storage).
We move `tmp/format-headers.sh` into `bin/format-headers.sh`.
We also add a few missing empty lines to `README.md`.
We add `bin/format-headers.sh` to the `bin/README.md`.
We run `bin/format-headers.sh` to perform the above.
Performed `make www` to accomplish the above and to test under macOS.
We use the `status_codes=("${PIPESTATUS[@]}")` method to
collect all of the bash exit codes from a pipe in one go,
and then test for any failure with `[[ ${status_codes[*]} =~ [1-9] ]]`.
There are other cases where an exit code is obtained,
however in each of those cases only a single exit code
from just one of the commands in the pipe is needed.
In `bin/gen-sitemap.sh` changed VERSION from "1.3.9 2024-06-21"
to "1.3.10 2024-07-18".
In `bin/gen-status.sh` changed VERSION from "1.5.4 2024-07-18"
to "1.5.5 2024-07-18".
Performed `make www` to accomplish the above and to test under macOS.
We improve FAQ 5.5 (correcting or updating IOCCC author information)
by adding a generic example on changing author's URL.
Now the "PLEASE HELP us identify proper locations for IOCCC authors"
(that now follows the change of URL example) contains only
generic information about changing the location_code from ZZ to AU.
We remove the indirect reference to author email in FAQ 6.16 as we
do not wish to call out what we previously included in the
`authors.html` page.
This commit modifies that otherwise perfect fine PR #2578.
Performed `make www` to accomplish the above and to test under macOS.
We improve FAQ 5.5 (correcting or updating IOCCC author information)
by adding a generic example on changing author's URL.
Now the "PLEASE HELP us identify proper locations for IOCCC authors"
(that now follows the change of URL example) contains only
generic information about changing the location_code from ZZ to AU.
We remove the indirect reference to author email in FAQ 6.16 as we
do not wish to call out what we previously included in the
`authors.html` page.
This commit modifies that otherwise perfect fine PR #2578.
Performed `make www` to accomplish the above and to test under macOS.
We quasi-canonicalized markdown links to FAQ entries.
**IMPORTANT NOTE**: This is a useful step in completing issue #2417. This commit is consistent with the top level TODO comment requirements. Nevertheless, this changes made by this commit needs to be examined and in some cases improved.
A link to an FAQ entry is of the form:
```
FAQ on "[the link text](....faq.html#string)"
FAQ on "[the link text](....faq.html#string)"
```
The "FAQ" is at the start of the line, or in rare cases is preceded only by whitespace.
The reference to the FAQ starts outside of the markdown link with the string **FAQ ON "**.
After the markdown link is a **"** followed by either the end of line or a single punctuation character such as a period or comma.
We reduced the size of "the link text" that refer to an FAQ to at most 3 words. In some cases the sentence and/or text surrounding the markdown link to a FAQ may need to be further adjusted to better accommodate this new style.
**IMPORTANT NOTE**: References to a FAQ entry are on a separate line.
p.s. When linking to the `faq.html` file itself, we use markdown of the form "`the [IOCCC FAQ](..../faq.html)`" and place the word "the" outside of the "IOCCC FAQ" link text.
Given the above system (and because references to an FAQ entry is on a separate line), the following command shows links to FAQ entries, sorted by FAQ entry "link #name" so that one may evaluate the way a given FAQ entry is referenced:
```sh
find * -name '*.md' -print0 | xargs0 grep -E '^[[:space:]]*FAQ on "' | sed -e 's/^\([^:]*\):\( *FAQ on "[^#]*\)#\([^)]*\)\()".*\)$/#\3\t\1\t\2#\3\4/' | sort
```
The above command shows the value of consistency when it comes to FAQ references.
**NOTE**: There are a few differences on how a given FAQ is references. That is probably OK as there is NOT an "total mandate" that all references to a given FAQ must have the same "link text" for example. On the other hand if references to a given FAQ can be identical, that might be helpful. We are certain that in some contexts the "link text" might need to change.
Should we decide to change the way FAQ are referenced, we will be able to modify identify and modify them with greater ease.'
Examine the changes made by this commit and adjust and/or improve as needed.
Performed `make www` to accomplish the above and to test under macOS.
We improve the language in `SECURITY.md` and the resulting
`SECURITY.html` page, and add an important disclaimer. We also add
that same disclaimer to the bottom of the of the main `index.html`
we page (via `index.md`).
We add a new `bin/entry2csv.sh` tool VERSION "1.0 2024-07-14"
that will convert entry `.entry.json` files into 3 CSV files
`author_wins.csv`, `manifest.csv`, and `year_prize.csv`.
The `bin/entry2csv.sh` tool uses `bin/manifest.csv.entry.awk`.
The new `bin/manifest.csv.entry.awk` VERSION is "1.0 2024-07-14".
This tool will be used to convert entry `.entry.json` file into
CSV files suitable for importing into a spreadsheet application
for further processing.
TODO: Write the `bin/csv2entry.sh` tool, for a given entry, to
convert 3 CSV files into that entry's c`.entry.json` file.
As a trial, we change the `<pre>..</pre>` and `<code>..</code>`
blocks form "_Indigo_" to "_DarkGreen_".
We needed a colour that was **NOT** on the "_blue_ thru _purple_" colour
range, nor "_red_" that is currently used by links.
We choose "_DarkGreen_" as this is the same colour as the box around
quotes. Given that `<pre>..</pre>` and `<code>..</code>` text
is unlikely to be confused with a box around a quote, we felt this
was a safe colour to try.
We add a FAQ version of "28.0 2024-07-14" to `faq.md`
using a similar form of version strings as `next/rules.md`
and `next/guidelines.md`.
Ran `make faq` to perform and test the above under macOS.
While the use of `**font-weight: bold;` helps links standout in
most cases, there a few "_link heavy_" pages were the **MANY BOLD
LINK IN CLOSE PROXIMITY** looks excessive to the point of being
distracting. In areas where **nearly everything is BOLD, nothing
seems to stand out**.
Fortunately there seems to be only a very few places where this is a problem:
* `faq.html` - the table of contents
* `authors.html` - nearly the entire page
* `location.html` - nearly the entire page
* `years.html` - nearly the entire page
As an **bold** 😎 experiment we added to the CSS:
```css
/*
* To make a link non-bold, use: <a class="normal" href="url">link text</a>
*/
a.normal {
font-weight: normal;
}
```
And then modified select tools and a markdown file to "_unbold_"
those "_link heavy_" areas of the 4 pages above.
We don't claim that this is the best solution and there may be an
even better way to solve this, nevertheless we **do** think the it
improves the look and feel of the "_link heavy_" areas of the 4
pages above. For example, in `faq.html` beyond the table of
contents, the bold links look reasonable (although again there are
some quasi-"_link heavy_" areas down in the page look a bit too
bold, but perhaps not enough to warrant changing so we only altered
the table of contents).
In a few cases, while we were editing code that generated links,
we remove a few "**.**"'s where we didn't think they helped the
look and feel.
Change `bin/gen-authors.sh` VERSION from "1.10.3 2024-05-24"
to "1.10.4 2024-07-13".
Change `bin/gen-location.sh` VERSION from "1.4.2 2024-05-19"
to "1.4.3 2024-07-13".
Change `bin/gen-years.sh` VERSION from "1.3.3 2024-07-07"
to "1.3.4 2024-07-13".
Performed `make www` to accomplish the above and to test under macOS.
Repaired the output_award function in `bin/gen-years.sh`
and `bin/output-year-index.sh`.
Previous modifications to the output_award function made
is impossible to detect if output was empty.
Modifications also ran counter the Unix concept that a function
should ideally to one thing and one thing well.
Changed so that the code that called the output_award function
would decorate the award with bold markdown syntax.
Changed `bin/gen-years.sh` VERSION from "1.3.2 2024-05-19"
to "1.3.3 2024-07-07".
Changed `bin/output-year-index.sh` VERSION from "1.4.1 2024-04-28"
to "1.4.2 2024-07-07".
Ran `make www` to perform the above and test under macOS.
Perhaps we need a test, run under `make test`, to look for
cases where 'foo.html' is older than 'foo.md` or where
`index.html` is older than `README.md`, etc. ???
We add the following level-3 header to help people identify text
they may wish to skip if they wish for a greater challenge:
```
```
After that notice we add:
```
**If you want a greater challenge, don't read any further**:
just try to understand the program via the source.
If you get stuck, come back and read below for additional hints and information.
```
And sometimes follow with:
```
```
Or sometimes follow with:
```
```
Where the alt code impacts a "greater challenge", we add instead:
```
**If you want a greater challenge, don't read any further**:
just try to understand the program without looking at the Alternate code.
If you get stuck, come back and look at the Alternate code.
```
And where a given command impacts a "greater challenge", we add instead:
```
**If you want a greater challenge, don't read any further**:
just try to understand the program without running the command below.
If you get stuck, come back and run the following command:
```
Perform `make www` to perform the above and test under macOS.
Thanks to @xexyl for the suggestion.
Changed `bin/chk-entry.sh` VERSION from "1.1.7 2024-04-28"
to VERSION="1.1.8 2024-07-06".
Performed `make test` to test the above.