diff --git a/Makefile b/Makefile index 648b9de63..b9b802561 100644 --- a/Makefile +++ b/Makefile @@ -266,10 +266,10 @@ help: @echo make gen_location @echo make gen_years @echo make entry_index - @echo make gen_top_html @echo make gen_other_html @echo make gen_year_index @echo make gen_status + @echo make gen_top_html @echo make quick_entry_index @echo make quick_www @echo make www @@ -434,9 +434,9 @@ quick_www: ${MAKE} gen_location ${MAKE} gen_years ${MAKE} gen_year_index - ${MAKE} gen_top_html ${MAKE} gen_other_html ${MAKE} gen_status + ${MAKE} gen_top_html ${MAKE} quick_entry_index ${MAKE} gen_sitemap @echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-=' @@ -456,9 +456,9 @@ www: ${MAKE} gen_location ${MAKE} gen_years ${MAKE} gen_year_index - ${MAKE} gen_top_html ${MAKE} gen_other_html ${MAKE} gen_status + ${MAKE} gen_top_html ${MAKE} entry_index ${MAKE} gen_sitemap @echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-=' diff --git a/bin/gen-sitemap.sh b/bin/gen-sitemap.sh index 54231028e..a45c50ac9 100755 --- a/bin/gen-sitemap.sh +++ b/bin/gen-sitemap.sh @@ -84,7 +84,7 @@ shopt -s globstar # enable ** to match all files and zero or more directories an # set variables referenced in the usage message # -export VERSION="1.3.6 2024-04-13" +export VERSION="1.3.7 2024-04-14" NAME=$(basename "$0") export NAME export V_FLAG=0 @@ -357,7 +357,7 @@ export BIN_DIR="bin" # export INC_PATH="$TOPDIR/inc" if [[ ! -d $INC_PATH ]]; then - echo "$0: ERROR: inc is not a directory under topdir: $BIN_PATH" 1>&2 + echo "$0: ERROR: inc is not a directory under topdir: $INC_PATH" 1>&2 exit 6 fi export INC_DIR="inc" diff --git a/bin/gen-status.sh b/bin/gen-status.sh index 3050233a0..5468a1017 100755 --- a/bin/gen-status.sh +++ b/bin/gen-status.sh @@ -84,7 +84,7 @@ shopt -s globstar # enable ** to match all files and zero or more directories an # set variables referenced in the usage message # -export VERSION="1.2.1 2024-04-13" +export VERSION="1.3 2024-04-14" NAME=$(basename "$0") export NAME export V_FLAG=0 @@ -579,11 +579,11 @@ if [[ ! -f $NEWS_MD ]]; then exit 1 fi if [[ ! -r $NEWS_MD ]]; then - echo "$0: ERROR: news.md is not an executable file: $NEWS_MD" 1>&2 + echo "$0: ERROR: news.md is not an readable file: $NEWS_MD" 1>&2 exit 1 fi if [[ ! -s $NEWS_MD ]]; then - echo "$0: ERROR: news.md is not an executable file: $NEWS_MD" 1>&2 + echo "$0: ERROR: news.md is not an non-empty readable file: $NEWS_MD" 1>&2 exit 1 fi @@ -599,11 +599,11 @@ if [[ ! -f $STATUS_JSON ]]; then exit 1 fi if [[ ! -r $STATUS_JSON ]]; then - echo "$0: ERROR: status.json is not an executable file: $STATUS_JSON" 1>&2 + echo "$0: ERROR: status.json is not an readable file: $STATUS_JSON" 1>&2 exit 1 fi if [[ ! -s $STATUS_JSON ]]; then - echo "$0: ERROR: status.json is not an executable file: $STATUS_JSON" 1>&2 + echo "$0: ERROR: status.json is not an non-empty readable file: $STATUS_JSON" 1>&2 exit 1 fi @@ -619,11 +619,11 @@ if [[ ! -f $STATUS_MD ]]; then exit 1 fi if [[ ! -r $STATUS_MD ]]; then - echo "$0: ERROR: status.md is not an executable file: $STATUS_MD" 1>&2 + echo "$0: ERROR: status.md is not an readable file: $STATUS_MD" 1>&2 exit 1 fi if [[ ! -s $STATUS_MD ]]; then - echo "$0: ERROR: status.md is not an executable file: $STATUS_MD" 1>&2 + echo "$0: ERROR: status.md is not an non-empty readable file: $STATUS_MD" 1>&2 exit 1 fi @@ -651,6 +651,24 @@ if [[ ! -s $TOP_FILE ]]; then exit 6 fi +# verify that we have an inc subdirectory +# +export INC_PATH="$TOPDIR/inc" +if [[ ! -d $INC_PATH ]]; then + echo "$0: ERROR: inc is not a directory under topdir: $INC_PATH" 1>&2 + exit 6 +fi +export INC_DIR="inc" + +# verify that we have an next subdirectory +# +export NEXT_PATH="$TOPDIR/next" +if [[ ! -d $NEXT_PATH ]]; then + echo "$0: ERROR: next is not a directory under topdir: $NEXT_PATH" 1>&2 + exit 6 +fi +export NEXT_DIR="next" + # determine how we can determine the file modification time in W3C Datetime format: # # https://www.w3.org/TR/NOTE-datetime @@ -746,6 +764,10 @@ if [[ $V_FLAG -ge 3 ]]; then echo "$0: debug[3]: STATUS_MD=$STATUS_MD" 1>&2 echo "$0: debug[3]: STATUS_HTML=$STATUS_HTML" 1>&2 echo "$0: debug[3]: TOP_FILE=$TOP_FILE" 1>&2 + echo "$0: debug[3]: INC_PATH=$INC_PATH" 1>&2 + echo "$0: debug[3]: INC_DIR=$INC_DIR" 1>&2 + echo "$0: debug[3]: NEXT_PATH=$NEXT_PATH" 1>&2 + echo "$0: debug[3]: NEXT_DIR=$NEXT_DIR" 1>&2 fi # validate JSON in status.json @@ -776,7 +798,7 @@ if [[ -z $CONTEST_STATUS ]]; then exit 1 fi - # validate and normalize the contest_status cfrom status.json + # validate and normalize the contest_status from status.json # case "$CONTEST_STATUS" in p|pending) CONTEST_STATUS="pending" @@ -795,6 +817,88 @@ if [[ -z $CONTEST_STATUS ]]; then esac fi +# determine the rules.md markdown file +# +export RULES_MD="$NEXT_DIR/rules.md" +if [[ ! -e $RULES_MD ]]; then + echo "$0: ERROR: rules.md does not exist: $RULES_MD" 1>&2 + exit 1 +fi +if [[ ! -f $RULES_MD ]]; then + echo "$0: ERROR: rules.md is not a regular file: $RULES_MD" 1>&2 + exit 1 +fi +if [[ ! -r $RULES_MD ]]; then + echo "$0: ERROR: rules.md is not an readable file: $RULES_MD" 1>&2 + exit 1 +fi +if [[ ! -s $RULES_MD ]]; then + echo "$0: ERROR: rules.md is not an non-empty readable file: $RULES_MD" 1>&2 + exit 1 +fi +export RULES_HTML="$NEXT_DIR/rules.html" + +# determine the rules.md markdown file +# +export GUIDELINES_MD="$NEXT_DIR/guidelines.md" +if [[ ! -e $GUIDELINES_MD ]]; then + echo "$0: ERROR: guidelines.md does not exist: $GUIDELINES_MD" 1>&2 + exit 1 +fi +if [[ ! -f $GUIDELINES_MD ]]; then + echo "$0: ERROR: guidelines.md is not a regular file: $GUIDELINES_MD" 1>&2 + exit 1 +fi +if [[ ! -r $GUIDELINES_MD ]]; then + echo "$0: ERROR: guidelines.md is not an readable file: $GUIDELINES_MD" 1>&2 + exit 1 +fi +if [[ ! -s $GUIDELINES_MD ]]; then + echo "$0: ERROR: guidelines.md is not an non-empty readable file: $GUIDELINES_MD" 1>&2 + exit 1 +fi +export GUIDELINES_HTML="$NEXT_DIR/guidelines.html" + +# determine the rules hdr file +# +export RULES_HDR="$INC_PATH/rules.$CONTEST_STATUS.hdr" +if [[ ! -e $RULES_HDR ]]; then + echo "$0: ERROR: rules hdr file does not exist: $RULES_HDR" 1>&2 + exit 1 +fi +if [[ ! -f $RULES_HDR ]]; then + echo "$0: ERROR: rules hdr file is not a regular file: $RULES_HDR" 1>&2 + exit 1 +fi +if [[ ! -r $RULES_HDR ]]; then + echo "$0: ERROR: rules hdr file is not an readable file: $RULES_HDR" 1>&2 + exit 1 +fi +if [[ ! -s $RULES_HDR ]]; then + echo "$0: ERROR: rules hdr file is not an non-empty readable file: $RULES_HDR" 1>&2 + exit 1 +fi + +# determine the guidelines hdr file +# +export GUIDELINES_HDR="$INC_PATH/guidelines.$CONTEST_STATUS.hdr" +if [[ ! -e $GUIDELINES_HDR ]]; then + echo "$0: ERROR: guidelines hdr file does not exist: $GUIDELINES_HDR" 1>&2 + exit 1 +fi +if [[ ! -f $GUIDELINES_HDR ]]; then + echo "$0: ERROR: guidelines hdr file is not a regular file: $GUIDELINES_HDR" 1>&2 + exit 1 +fi +if [[ ! -r $GUIDELINES_HDR ]]; then + echo "$0: ERROR: guidelines hdr file is not an readable file: $GUIDELINES_HDR" 1>&2 + exit 1 +fi +if [[ ! -s $GUIDELINES_HDR ]]; then + echo "$0: ERROR: guidelines hdr file is not an non-empty readable file: $GUIDELINES_HDR" 1>&2 + exit 1 +fi + # -N stops early before any processing is performed # if [[ -n $DO_NOT_PROCESS ]]; then @@ -826,6 +930,50 @@ elif [[ $V_FLAG -ge 3 ]]; then echo "$0: debug[3]: because of -n, temporary status.json file is not used: $TMP_STATUS_JSON" 1>&2 fi +# create a temporary rules.md file +# +export TMP_RULES_MD=".$NAME.$$.entry.md" +if [[ $V_FLAG -ge 3 ]]; then + echo "$0: debug[3]: temporary rules.md file: $TMP_RULES_MD" 1>&2 +fi +if [[ -z $NOOP ]]; then + trap 'rm -f $TMP_STATUS_JSON $TMP_RULES_MD $TMP_GUIDELINES_MD; exit' 0 1 2 3 15 + rm -f "$TMP_RULES_MD" + if [[ -e $TMP_RULES_MD ]]; then + echo "$0: ERROR: cannot remove temporary rules.md file: $TMP_RULES_MD" 1>&2 + exit 14 + fi + :> "$TMP_RULES_MD" + if [[ ! -e $TMP_RULES_MD ]]; then + echo "$0: ERROR: cannot create temporary rules.md file: $TMP_RULES_MD" 1>&2 + exit 15 + fi +elif [[ $V_FLAG -ge 3 ]]; then + echo "$0: debug[3]: because of -n, temporary rules.md file is not used: $TMP_RULES_MD" 1>&2 +fi + +# create a temporary guidelines.md file +# +export TMP_GUIDELINES_MD=".$NAME.$$.entry.md" +if [[ $V_FLAG -ge 3 ]]; then + echo "$0: debug[3]: temporary guidelines.md file: $TMP_GUIDELINES_MD" 1>&2 +fi +if [[ -z $NOOP ]]; then + trap 'rm -f $TMP_STATUS_JSON $TMP_RULES_MD $TMP_GUIDELINES_MD; exit' 0 1 2 3 15 + rm -f "$TMP_GUIDELINES_MD" + if [[ -e $TMP_GUIDELINES_MD ]]; then + echo "$0: ERROR: cannot remove temporary guidelines.md file: $TMP_GUIDELINES_MD" 1>&2 + exit 12 + fi + :> "$TMP_GUIDELINES_MD" + if [[ ! -e $TMP_GUIDELINES_MD ]]; then + echo "$0: ERROR: cannot create temporary guidelines.md file: $TMP_GUIDELINES_MD" 1>&2 + exit 13 + fi +elif [[ $V_FLAG -ge 3 ]]; then + echo "$0: debug[3]: because of -n, temporary guidelines.md file is not used: $TMP_GUIDELINES_MD" 1>&2 +fi + # generate the temporary status.json file # # In this stage, we use the date of the actual status.json file. @@ -838,11 +986,11 @@ if [[ -z $NOOP ]]; then status="$?" if [[ $status -ne 0 ]]; then echo "$0: ERROR: failed to form temporary status.json file: $TMP_STATUS_JSON, error code: $status" 1>&2 - exit 12 + exit 16 fi if [[ ! -s $TMP_STATUS_JSON ]]; then echo "$0: ERROR: failed to form temporary status.json, file missing or empty: $TMP_STATUS_JSON" 1>&2 - exit 13 + exit 17 fi # check if temporary status.json file is different from the actual status.json file @@ -867,7 +1015,7 @@ if [[ -z $NOOP ]]; then status="$?" if [[ $status -ne 0 ]]; then echo "$0: ERROR: failed to touch -m $STATUS_JSON, error code: $status" 1>&2 - exit 14 + exit 18 fi # # Rebuild temporary status.json file with updated (touched) modification time @@ -876,11 +1024,11 @@ if [[ -z $NOOP ]]; then status="$?" if [[ $status -ne 0 ]]; then echo "$0: ERROR: failed to reform temporary status.json file: $TMP_STATUS_JSON, error code: $status" 1>&2 - exit 15 + exit 19 fi if [[ ! -s $TMP_STATUS_JSON ]]; then echo "$0: ERROR: failed to reform temporary status.json, file missing or empty: $TMP_STATUS_JSON" 1>&2 - exit 16 + exit 20 fi # # touch the temporary status.json file to have the updated (touched) modification time @@ -889,7 +1037,7 @@ if [[ -z $NOOP ]]; then status="$?" if [[ $status -ne 0 ]]; then echo "$0: ERROR: failed to touch -m -r $STATUS_JSON $TMP_STATUS_JSON, error code: $status" 1>&2 - exit 17 + exit 21 fi # move the temporary status.json file into place @@ -900,14 +1048,14 @@ if [[ -z $NOOP ]]; then status="$?" if [[ $status -ne 0 ]]; then echo "$0: ERROR: failed to mv -v -f $TMP_STATUS_JSON $STATUS_JSON, error code: $status" 1>&2 - exit 18 + exit 22 fi else mv -f "$TMP_STATUS_JSON" "$STATUS_JSON" status="$?" if [[ $status -ne 0 ]]; then echo "$0: ERROR: failed to mv -f $TMP_STATUS_JSON $STATUS_JSON, error code: $status" 1>&2 - exit 19 + exit 23 fi fi fi @@ -930,7 +1078,7 @@ if [[ -z $NOOP ]]; then echo "$0: ERROR: md2html.sh: $MD2HTML_SH ${TOOL_OPTION[*]} --" \ "status.md $STATUS_HTML" \ "failed, error: $status" 1>&2 - exit 20 + exit 24 elif [[ $V_FLAG -ge 3 ]]; then echo "$0: debug[3]: now up to date: $STATUS_HTML" 1>&2 fi @@ -942,10 +1090,166 @@ elif [[ $V_FLAG -ge 5 ]]; then "status.md $STATUS_HTML" 1>&2 fi +# update rules.md +# +if [[ -z $NOOP ]]; then + + # form a new rules.md + # + cat "$RULES_HDR" > "$TMP_RULES_MD" + status="$?" + if [[ $status -ne 0 ]]; then + echo "$0: ERROR: failed to cat $RULES_HDR > $TMP_RULES_MD, error code: $status" 1>&2 + exit 25 + fi + sed -e '1,/^/d' \ + "$RULES_MD" >> "$TMP_RULES_MD" + status="$?" + if [[ $status -ne 0 ]]; then + echo "$0: ERROR: failed to sed -e '1,//d' $RULES_MD >> $TMP_RULES_MD," \ + "error code: $status" 1>&2 + exit 26 + fi + + # update rules.md is different + # + if cmp -s "$TMP_RULES_MD" "$RULES_MD"; then + + # case: rules.md did not change + # + if [[ $V_FLAG -ge 5 ]]; then + echo "$0: debug[5]: rules.md file did not change: $RULES_MD" 1>&2 + fi + + else + + # case: rules.md changed, update the file + # + if [[ $V_FLAG -ge 5 ]]; then + echo "$0: debug[5]: mv -f -- $TMP_RULES_MD $RULES_MD" 1>&2 + fi + if [[ $V_FLAG -ge 3 ]]; then + mv -f -v -- "$TMP_RULES_MD" "$RULES_MD" + status="$?" + else + mv -f -- "$TMP_RULES_MD" "$RULES_MD" + status="$?" + fi + if [[ status -ne 0 ]]; then + echo "$0: ERROR: mv -f -- $TMP_RULES_MD $RULES_MD filed, error code: $status" 1>&2 + elif [[ $V_FLAG -ge 1 ]]; then + echo "$0: debug[1]: built replaced rules.md: $RULES_MD" 1>&2 + fi + if [[ ! -s $RULES_MD ]]; then + echo "$0: ERROR: not a non-empty rules.md file: $RULES_MD" 1>&2 + exit 27 + fi + + # use the md2html.sh tool to form the rules.html file, unless -n + # + if [[ $V_FLAG -ge 1 ]]; then + echo "$0: debug[1]: about to run: $MD2HTML_SH ${TOOL_OPTION[*]} --" \ + "next/rules.md $RULES_HTML" 1>&2 + fi + "$MD2HTML_SH" "${TOOL_OPTION[@]}" -- \ + next/rules.md "$RULES_HTML" + status="$?" + if [[ $status -ne 0 ]]; then + echo "$0: ERROR: md2html.sh: $MD2HTML_SH ${TOOL_OPTION[*]} --" \ + "next/rules.md $RULES_HTML" \ + "failed, error: $status" 1>&2 + exit 28 + elif [[ $V_FLAG -ge 3 ]]; then + echo "$0: debug[3]: rules.md now up to date: $RULES_MD" 1>&2 + fi + fi + +elif [[ $V_FLAG -ge 3 ]]; then + echo "$0: debug[3]: because of -n, rules.md was not updated: $RULES_MD" 1>&2 +fi + +# update guidelines.md +# +if [[ -z $NOOP ]]; then + + # form a new guidelines.md + # + cat "$GUIDELINES_HDR" > "$TMP_GUIDELINES_MD" + status="$?" + if [[ $status -ne 0 ]]; then + echo "$0: ERROR: failed to cat $GUIDELINES_HDR > $TMP_GUIDELINES_MD, error code: $status" 1>&2 + exit 29 + fi + sed -e '1,/^/d' \ + "$GUIDELINES_MD" >> "$TMP_GUIDELINES_MD" + status="$?" + if [[ $status -ne 0 ]]; then + echo "$0: ERROR: failed to sed -e '1,//d' $GUIDELINES_MD >> $TMP_GUIDELINES_MD," \ + "error code: $status" 1>&2 + exit 30 + fi + + # update guidelines.md is different + # + if cmp -s "$TMP_GUIDELINES_MD" "$GUIDELINES_MD"; then + + # case: guidelines.md did not change + # + if [[ $V_FLAG -ge 5 ]]; then + echo "$0: debug[5]: guidelines.md file did not change: $GUIDELINES_MD" 1>&2 + fi + + else + + # case: guidelines.md changed, update the file + # + if [[ $V_FLAG -ge 5 ]]; then + echo "$0: debug[5]: mv -f -- $TMP_GUIDELINES_MD $GUIDELINES_MD" 1>&2 + fi + if [[ $V_FLAG -ge 3 ]]; then + mv -f -v -- "$TMP_GUIDELINES_MD" "$GUIDELINES_MD" + status="$?" + else + mv -f -- "$TMP_GUIDELINES_MD" "$GUIDELINES_MD" + status="$?" + fi + if [[ status -ne 0 ]]; then + echo "$0: ERROR: mv -f -- $TMP_GUIDELINES_MD $GUIDELINES_MD filed, error code: $status" 1>&2 + elif [[ $V_FLAG -ge 1 ]]; then + echo "$0: debug[1]: built replaced guidelines.md: $GUIDELINES_MD" 1>&2 + fi + if [[ ! -s $GUIDELINES_MD ]]; then + echo "$0: ERROR: not a non-empty guidelines.md file: $GUIDELINES_MD" 1>&2 + exit 31 + fi + + # use the md2html.sh tool to form the guidelines.html file, unless -n + # + if [[ $V_FLAG -ge 1 ]]; then + echo "$0: debug[1]: about to run: $MD2HTML_SH ${TOOL_OPTION[*]} --" \ + "next/guidelines.md $guidelines_HTML" 1>&2 + fi + "$MD2HTML_SH" "${TOOL_OPTION[@]}" -- \ + next/guidelines.md "$GUIDELINES_HTML" + status="$?" + if [[ $status -ne 0 ]]; then + echo "$0: ERROR: md2html.sh: $MD2HTML_SH ${TOOL_OPTION[*]} --" \ + "next/guidelines.md $GUIDELINES_HTML" \ + "failed, error: $status" 1>&2 + exit 32 + elif [[ $V_FLAG -ge 3 ]]; then + echo "$0: debug[3]: guidelines.md now up to date: $guidelines_MD" 1>&2 + fi + fi + +elif [[ $V_FLAG -ge 3 ]]; then + echo "$0: debug[3]: because of -n, guidelines.md was not updated: $GUIDELINES_MD" 1>&2 +fi + # file cleanup # if [[ -z $NOOP ]]; then - rm -f -- "$TMP_STATUS_JSON" + rm -f -- "$TMP_STATUS_JSON" "$TMP_GUIDELINES_MD" "$TMP_RULES_MD" elif [[ $V_FLAG -ge 3 ]]; then echo "$0: debug[3]: because of -n, disabled: rm -f -- $TMP_STATUS_JSON" 1>&2 fi diff --git a/bin/gen-year-index.sh b/bin/gen-year-index.sh index a908f5c65..75d5b500e 100755 --- a/bin/gen-year-index.sh +++ b/bin/gen-year-index.sh @@ -85,7 +85,7 @@ shopt -s globstar # enable ** to match all files and zero or more directories an # set variables referenced in the usage message # -export VERSION="1.0.6 2024-04-13" +export VERSION="1.0.7 2024-04-14" NAME=$(basename "$0") export NAME export V_FLAG=0 @@ -323,7 +323,7 @@ if [[ ! -d $YYYY ]]; then exit 6 fi if [[ ! -r $YYYY ]]; then - echo "$0: ERROR: arg is not a writable directory: $YYYY" 1>&2 + echo "$0: ERROR: arg is not a readable directory: $YYYY" 1>&2 exit 6 fi diff --git a/bin/output-year-index.sh b/bin/output-year-index.sh index 63633ddcc..263b93813 100755 --- a/bin/output-year-index.sh +++ b/bin/output-year-index.sh @@ -108,7 +108,7 @@ shopt -s globstar # enable ** to match all files and zero or more directories an # set variables referenced in the usage message # -export VERSION="1.2.1 2024-04-13" +export VERSION="1.2.2 2024-04-14" NAME=$(basename "$0") export NAME export V_FLAG=0 @@ -435,7 +435,7 @@ if [[ ! -d $YYYY ]]; then exit 6 fi if [[ ! -r $YYYY ]]; then - echo "$0: ERROR: arg is not a writable directory: $YYYY" 1>&2 + echo "$0: ERROR: arg is not a readable directory: $YYYY" 1>&2 exit 6 fi diff --git a/bin/untar-year.sh b/bin/untar-year.sh index 8e8ad87e8..962583f5f 100755 --- a/bin/untar-year.sh +++ b/bin/untar-year.sh @@ -83,7 +83,7 @@ shopt -s globstar # enable ** to match all files and zero or more directories an # set variables referenced in the usage message # -export VERSION="1.0.1 2024-04-13" +export VERSION="1.0.2 2024-04-14" NAME=$(basename "$0") export NAME export V_FLAG=0 @@ -267,7 +267,7 @@ if [[ ! -d $YYYY ]]; then exit 6 fi if [[ ! -r $YYYY ]]; then - echo "$0: ERROR: arg is not a writable directory: $YYYY" 1>&2 + echo "$0: ERROR: arg is not a readable directory: $YYYY" 1>&2 exit 6 fi diff --git a/inc/guidelines.closed.hdr b/inc/guidelines.closed.hdr new file mode 100644 index 000000000..38d5124ea --- /dev/null +++ b/inc/guidelines.closed.hdr @@ -0,0 +1,22 @@ + + +# WARNING: These guidelines are OUT OF DATE + +They are a **very tentative proposal** for the next IOCCC +that is **VERY LIKELY** to be updated before the next IOCCC. +They are are provided as a **very tentative** hint at what +might be used in a future IOCCC. + +Please regard these guidelines as a historic archive. + + +# The IOCCC is closed + +The IOCCC is **NOT** accepting new submissions at this time. See the +[IOCCC winning entries page](years.html) for the entires that have won the IOCCC. + +Watch both [the IOCCC status page](status.html) and the +[@IOCCC mastodon feed](https://fosstodon.org/@ioccc) for information about future IOCCC openings. + + + diff --git a/inc/guidelines.judging.hdr b/inc/guidelines.judging.hdr new file mode 100644 index 000000000..6264cd411 --- /dev/null +++ b/inc/guidelines.judging.hdr @@ -0,0 +1,22 @@ + + +# The guidelines for the IOCCC that just closed + +These guidelines are for the current IOCCC that is no longer open for new submissions. + +See the [IOCCC news](../news.html) and well as the [IOCCC +Mastodon](https://fosstodon.org/@ioccc) feed for updates +on the IOCCC judging process as well as for the announcement +for [who won the IOCCC](../years.html). + + +# The IOCCC is closed to new submissions + +The [IOCCC judges](judges.html) are in the process of judging the submissions they received +the IOCCC was open. + +Watch the [@IOCCC mastodon feed](https://fosstodon.org/@ioccc), as well as the +[IOCCC news](news.html) page for updates. + + + diff --git a/inc/guidelines.open.hdr b/inc/guidelines.open.hdr new file mode 100644 index 000000000..a19372fa2 --- /dev/null +++ b/inc/guidelines.open.hdr @@ -0,0 +1,21 @@ + + +# Official IOCCC guidelines + +These guidelines are **OFFICIAL**. + +Unless some significant problem turns up (such as a need to delay +in when the IOCCC will close, or some major bug is discovered) they +will remain **OFFICIAL** for this IOCCC. + +**SUGGESTION**: Watch both the [IOCCC news](../news.html) and the [IOCCC +Mastodon](https://fosstodon.org/@ioccc) feed for the latest news +about any _mentions_ changes. + + +# The IOCCC open for submissions + +See the [IOCCC news](news.html) page for possible news about updates to these guidelines. + + + diff --git a/inc/guidelines.pending.hdr b/inc/guidelines.pending.hdr new file mode 100644 index 000000000..3dbe5dd21 --- /dev/null +++ b/inc/guidelines.pending.hdr @@ -0,0 +1,22 @@ + + +# WARNING: These guidelines are TENTATIVE + +One might think of them as a **beta** release for the IOCCC +that is about to open. + +**IMPORTANT**: All **tentative** [rules](rules.html) and [guidelines](guidelines.html) +are subject to change by the [IOCCC judges](../judges.html) at any time. +See both the [IOCCC news](../news.html) and the [IOCCC +Mastodon](https://fosstodon.org/@ioccc) feed as _sometimes_ the +[IOCCC judges](../judges.html) _mention_ changes there. + + +# The IOCCC is not yet open + +While the IOCCC is not open now, there is a tentative opening date for the next IOCCC. + +Comments and suggestions on these preliminary items are welcome. + + + diff --git a/inc/guidelines.year.hdr b/inc/guidelines.year.hdr new file mode 100644 index 000000000..b7749e9be --- /dev/null +++ b/inc/guidelines.year.hdr @@ -0,0 +1,7 @@ + + +# WARNING: These guidelines are OUT OF DATE + +These guidelines are provided as a historic archive, only. + + diff --git a/inc/md2html.cfg b/inc/md2html.cfg index 8ed35bcaa..d95c4b4f0 100644 --- a/inc/md2html.cfg +++ b/inc/md2html.cfg @@ -365,7 +365,7 @@ next/rules.md -s TITLE=The International Obfuscated C Code Contest -s - DESCRIPTION=IOCCC rules and guidelines + DESCRIPTION=IOCCC Rules -s KEYWORDS=IOCCC, rules, Rules -s @@ -381,7 +381,7 @@ next/guidelines.md -s TITLE=The International Obfuscated C Code Contest -s - DESCRIPTION=IOCCC guidelines + DESCRIPTION=IOCCC Guidelines -s KEYWORDS=IOCCC, guidelines, Guidelines -s diff --git a/inc/rules.closed.hdr b/inc/rules.closed.hdr new file mode 100644 index 000000000..dc3fffc95 --- /dev/null +++ b/inc/rules.closed.hdr @@ -0,0 +1,22 @@ + + +# WARNING: These rules are OUT OF DATE + +They are a **very tentative proposal** for the next IOCCC +that is **VERY LIKELY** to be updated before the next IOCCC. +They are are provided as a **very tentative** hint at what +might be used in a future IOCCC. + +Please regard these rules as a historic archive. + + +# The IOCCC is closed + +The IOCCC is **NOT** accepting new submissions at this time. See the +[IOCCC winning entries page](years.html) for the entires that have won the IOCCC. + +Watch both [the IOCCC status page](status.html) and the +[@IOCCC mastodon feed](https://fosstodon.org/@ioccc) for information about future IOCCC openings. + + + diff --git a/inc/rules.judging.hdr b/inc/rules.judging.hdr new file mode 100644 index 000000000..23d5734c0 --- /dev/null +++ b/inc/rules.judging.hdr @@ -0,0 +1,22 @@ + + +# The rules for the IOCCC that just closed + +These rules are for the current IOCCC that is no longer open for new submissions. + +See the [IOCCC news](../news.html) and well as the [IOCCC +Mastodon](https://fosstodon.org/@ioccc) feed for updates +on the IOCCC judging process as well as for the announcement +for [who won the IOCCC](../years.html). + + +# The IOCCC is closed to new submissions + +The [IOCCC judges](judges.html) are in the process of judging the submissions they received +the IOCCC was open. + +Watch the [@IOCCC mastodon feed](https://fosstodon.org/@ioccc), as well as the +[IOCCC news](news.html) page for updates. + + + diff --git a/inc/rules.open.hdr b/inc/rules.open.hdr new file mode 100644 index 000000000..2116aaac2 --- /dev/null +++ b/inc/rules.open.hdr @@ -0,0 +1,21 @@ + + +# Official IOCCC rules + +These rules are **OFFICIAL**. + +Unless some significant problem turns up (such as a need to delay +in when the IOCCC will close, or some major bug is discovered) they +will remain **OFFICIAL** for this IOCCC. + +**SUGGESTION**: Watch both the [IOCCC news](../news.html) and the [IOCCC +Mastodon](https://fosstodon.org/@ioccc) feed for the latest news +about any _mentions_ changes. + + +# The IOCCC open for submissions + +See the [IOCCC news](news.html) page for possible news about updates to these rules. + + + diff --git a/inc/rules.pending.hdr b/inc/rules.pending.hdr new file mode 100644 index 000000000..8f6bc2922 --- /dev/null +++ b/inc/rules.pending.hdr @@ -0,0 +1,22 @@ + + +# WARNING: These rules are TENTATIVE + +One might think of them as a **beta** release for the IOCCC +that is about to open. + +**IMPORTANT**: All **tentative** [rules](rules.html) and [guidelines](guidelines.html) +are subject to change by the [IOCCC judges](../judges.html) at any time. +See both the [IOCCC news](../news.html) and the [IOCCC +Mastodon](https://fosstodon.org/@ioccc) feed as _sometimes_ the +[IOCCC judges](../judges.html) _mention_ changes there. + + +# The IOCCC is not yet open + +While the IOCCC is not open now, there is a tentative opening date for the next IOCCC. + +Comments and suggestions on these preliminary items are welcome. + + + diff --git a/inc/rules.year.hdr b/inc/rules.year.hdr new file mode 100644 index 000000000..5d7c95e97 --- /dev/null +++ b/inc/rules.year.hdr @@ -0,0 +1,7 @@ + + +# WARNING: These rules are OUT OF DATE + +These rules are provided as a historic archive, only. + + diff --git a/next/guidelines.html b/next/guidelines.html index 9f5e43081..4b3e0faf2 100644 --- a/next/guidelines.html +++ b/next/guidelines.html @@ -11,7 +11,7 @@ The International Obfuscated C Code Contest - + diff --git a/next/rules.html b/next/rules.html index 690629e13..e93bda889 100644 --- a/next/rules.html +++ b/next/rules.html @@ -11,7 +11,7 @@ The International Obfuscated C Code Contest - + diff --git a/sitemap.xml b/sitemap.xml index 94b9b95aa..395b4ddfb 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -17642,7 +17642,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson2/obfuscation.key - 2024-04-15T03:41:47+00:00 + 2024-04-15T03:51:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson2/obfuscation.md @@ -19090,19 +19090,19 @@ https://ioccc-src.github.io/temp-test-ioccc/bin/gen-sitemap.sh - 2024-04-14T01:22:03+00:00 + 2024-04-15T05:10:31+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/gen-status.sh - 2024-04-14T01:22:03+00:00 + 2024-04-15T06:15:56+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/gen-top-html.sh - 2024-04-14T22:45:19+00:00 + 2024-04-15T06:23:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/gen-year-index.sh - 2024-04-14T01:22:03+00:00 + 2024-04-15T05:16:49+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/gen-years.sh @@ -19130,7 +19130,7 @@ https://ioccc-src.github.io/temp-test-ioccc/bin/output-year-index.sh - 2024-04-14T01:22:03+00:00 + 2024-04-15T05:20:49+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/pandoc-wrapper.sh @@ -19174,7 +19174,7 @@ https://ioccc-src.github.io/temp-test-ioccc/bin/subst.year-index.sh - 2024-04-14T01:22:03+00:00 + 2024-04-15T05:11:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/subst.year-navbar.awk @@ -19194,7 +19194,7 @@ https://ioccc-src.github.io/temp-test-ioccc/bin/untar-year.sh - 2024-04-14T01:22:03+00:00 + 2024-04-15T05:23:28+00:00 https://ioccc-src.github.io/temp-test-ioccc/bugs.html @@ -19310,7 +19310,7 @@ https://ioccc-src.github.io/temp-test-ioccc/inc/md2html.cfg - 2024-04-14T22:25:14+00:00 + 2024-04-15T06:18:21+00:00 https://ioccc-src.github.io/temp-test-ioccc/inc/README.md @@ -19410,7 +19410,7 @@ https://ioccc-src.github.io/temp-test-ioccc/Makefile - 2024-04-14T23:47:54+00:00 + 2024-04-15T06:27:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/news.html