diff options
Diffstat (limited to '')
27 files changed, 249 insertions, 305 deletions
@@ -12,7 +12,6 @@ clean: public: sh aux/workflow/public.sh website website public-inbox - mv public/index.html public/README.html JEKYLL_ENV=production jekyll build --trace rsync -a _site/ public @@ -1,5 +1,17 @@ # Tasks +## TODO Publish site on CI instead of my local machine {#task-6a3a99ec-dd86-b8b3-b1eb-f9b9a4298f3a} +- TODO in 2021-06-07 + +## TODO Generate Opus for podcast {#task-93510453-111f-9b1f-575f-ca8c7c05883c} +- TODO in 2021-06-07 + +## TODO Generate PDFs for slides {#task-d2ef646f-6232-d82f-dd77-507c6981ee80} +- TODO in 2021-06-07 + +## TODO Podcast metadata: copy GNU World Order {#task-7b0aeb8d-282b-7ebf-4c5f-65c6cac1f0a1} +- TODO in 2021-06-07 + ## TODO Publish over Gemini {#task-319021df-ebdb-40cd-8330-329e8d01b747} - TODO in 2021-02-22 @@ -268,9 +280,3 @@ Because of subtitle embedding. - <https://github.com/hbldh/hitherdither> # Scratch - -generate pdf of slides -generate opus for podcast -podcast metadata: copy GNU World Order - -Add assert-todos.sh to tests.sh diff --git a/_articles/2020-11-07-diy-an-offline-bug-tracker-with-text-files-git-and-email.md b/_articles/2020-11-07-diy-an-offline-bug-tracker-with-text-files-git-and-email.md index 1dcf5d2..2bec42b 100644 --- a/_articles/2020-11-07-diy-an-offline-bug-tracker-with-text-files-git-and-email.md +++ b/_articles/2020-11-07-diy-an-offline-bug-tracker-with-text-files-git-and-email.md @@ -99,5 +99,5 @@ These tools are familiar enough that you can adjust it to fit your workflow. [todos-org]: https://git.euandreh.xyz/mediator/tree/TODOs.org [org-mode-to-html]: https://git.euandreh.xyz/mediator/tree/scripts/build-site.sh?id=db4a727bc24b54b50158827b34502de21dbf8948#n14 -[published-todos]: https://mediator.euandreh.xyz/tasks-and-bugs.html +[published-todos]: https://euandreh.xyz/mediator/TODOs.html [fossil-tickets]: https://fossil-scm.org/home/doc/trunk/www/bugtheory.wiki diff --git a/_articles/2021-01-26-ann-remembering-add-memory-to-dmenu-fzf-and-similar-tools.md b/_articles/2021-01-26-ann-remembering-add-memory-to-dmenu-fzf-and-similar-tools.md index 4d88cb7..12f3cd1 100644 --- a/_articles/2021-01-26-ann-remembering-add-memory-to-dmenu-fzf-and-similar-tools.md +++ b/_articles/2021-01-26-ann-remembering-add-memory-to-dmenu-fzf-and-similar-tools.md @@ -27,7 +27,7 @@ But now I had this thing, yeganesh, that solved this problem for dmenu, but didn I initially considered patching yeganesh to support it, but I found it more coupled to dmenu than I would desire. I'd rather have something that knows nothing about dmenu, fzf or anything, but enhances tools like those in a useful way. -[remembering]: https://remembering.euandreh.xyz +[remembering]: https://euandreh.xyz/remembering/ [dmenu]: https://tools.suckless.org/dmenu/ [fzf]: https://github.com/junegunn/fzf [yeganesh]: http://dmwit.com/yeganesh/ diff --git a/_articles/2021-02-17-ann-fallible-fault-injection-library-for-stress-testing-failure-scenarios.md b/_articles/2021-02-17-ann-fallible-fault-injection-library-for-stress-testing-failure-scenarios.md index f270619..0add24e 100644 --- a/_articles/2021-02-17-ann-fallible-fault-injection-library-for-stress-testing-failure-scenarios.md +++ b/_articles/2021-02-17-ann-fallible-fault-injection-library-for-stress-testing-failure-scenarios.md @@ -14,7 +14,7 @@ ref: ann-fallible-fault-injection-library-for-stress-testing-failure-scenarios Yesterday I pushed v0.1.0 of [fallible], a miniscule library for fault-injection and stress-testing C programs. -[fallible]: https://fallible.euandreh.xyz +[fallible]: https://euandreh.xyz/fallible/ ## Existing solutions @@ -222,7 +222,7 @@ Valgrind failed when we did not expect it to: # exit status is 1 ``` -[fallible-check]: https:/fallible.euandreh.xyz/fallible-check.1.html +[fallible-check]: https://euandreh.xyz/fallible/fallible-check.1.html ## Conclusion diff --git a/_tils/2020-11-12-diy-bare-bones-ci-server-with-bash-and-nix.md b/_tils/2020-11-12-diy-bare-bones-ci-server-with-bash-and-nix.md index 7abda30..7c72d2f 100644 --- a/_tils/2020-11-12-diy-bare-bones-ci-server-with-bash-and-nix.md +++ b/_tils/2020-11-12-diy-bare-bones-ci-server-with-bash-and-nix.md @@ -53,10 +53,11 @@ Lines #10 to #13 create a fresh clone of the repository and line #20 runs the test command. After using a similar post-receive hook for a while, I now even generate a -simple HTML file to make the [logs available][ci-logs] through the browser. +simple HTML file to make the logs available ([example project][ci-logs]) +through the browser. [post-receive]: https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks -[ci-logs]: https://ci.euandreh.xyz/ +[ci-logs]: https://euandreh.xyz/remembering/ ## Upsides diff --git a/aux/assert-shellcheck.sh b/aux/assert-shellcheck.sh index fcbb1c7..cc01f3a 100755 --- a/aux/assert-shellcheck.sh +++ b/aux/assert-shellcheck.sh @@ -2,5 +2,5 @@ set -eux git ls-files | \ - xargs awk 'FNR==1 && /^#!\/bin\/sh$/ { print FILENAME }' | \ - xargs shellcheck + xargs awk 'FNR==1 && /^#!\/bin\/sh$/ { print FILENAME }' | \ + xargs shellcheck diff --git a/aux/ci/ci-build.sh b/aux/ci/ci-build.sh deleted file mode 100755 index 21788f4..0000000 --- a/aux/ci/ci-build.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh -set -eux - -PACKAGE="$1" -LOGS_DIR="$2" -read -r _ SHA _ # oldrev newrev refname -FILENAME="$(date -Is)-$SHA.log" -LOGFILE="$LOGS_DIR/$FILENAME" - -{ - echo "Starting CI job at: $(date -Is)" - - finish() { - STATUS="$?" - printf "\n\n>>> exit status was %s\n" "$STATUS" - echo "Finishing CI job at: $(date -Is)" - cd - - NOTE=$(cat <<EOF -See CI logs with: - git notes --ref=refs/notes/ci-logs show $SHA - git notes --ref=refs/notes/ci-data show $SHA -EOF -) - git notes --ref=refs/notes/ci-data add -f -m "$STATUS $FILENAME" - git notes --ref=refs/notes/ci-logs add -f -F "$LOGFILE" - git notes append -m "$NOTE" - - printf "\n>>>\n>>> CI logs added as Git note.\n>>>\n>>> Run status was %s" "$STATUS" - } - trap finish EXIT - - unset GIT_DIR - REMOTE="$PWD" - cd "$(mktemp -d)" - git clone "$REMOTE" . - git config --global user.email git@euandre.org - git config --global user.name 'EuAndreh CI' - git fetch origin refs/notes/*:refs/notes/* - git annex get ||: - - if [ -f aux/guix/with-container.sh ]; then - RUNNER='./aux/guix/with-container.sh' - else - RUNNER='sh -c' - fi - - $RUNNER 'make clean public dev-check' - - rsync -a public/ "/srv/http/$PACKAGE/" --delete -} 2>&1 | tee "$LOGFILE" diff --git a/aux/ci/git-post-receive.sh b/aux/ci/git-post-receive.sh deleted file mode 100755 index f8986ed..0000000 --- a/aux/ci/git-post-receive.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -set -eu - -for n in $(seq 0 $((GIT_PUSH_OPTION_COUNT - 1))); do - opt="$(eval "echo \$GIT_PUSH_OPTION_$n")" - if [ "$opt" = skip-ci ] || [ "$opt" = ci-skip ]; then - printf "\n'%s' option detected, not running ci-build.sh\n\n" "$opt" - exit 0 - fi -done - -PACKAGE="$(basename "$PWD" | cut -d. -f1)" # remove .git suffix -LOGS_DIR="/opt/ci/$PACKAGE/logs" -"/opt/ci/$PACKAGE/ci-build.sh" "$PACKAGE" "$LOGS_DIR" diff --git a/aux/ci/git-pre-push.sh b/aux/ci/git-pre-push.sh deleted file mode 100755 index 5546cb2..0000000 --- a/aux/ci/git-pre-push.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -set -eux - -PACKAGE="$(basename "$PWD")" -LOGS_DIR="/opt/ci/$PACKAGE/logs" -REMOTE_GIT_DIR="/srv/git/$PACKAGE.git" - -DESCRIPTION="$(mktemp)" -if [ -f description ] -then - cp description "$DESCRIPTION" -else - git config euandreh.description > "$DESCRIPTION" -fi - -scp "$DESCRIPTION" "git.euandreh.xyz:$REMOTE_GIT_DIR/description" -ssh git.euandreh.xyz mkdir -p "$LOGS_DIR" -scp aux/ci/ci-build.sh "git.euandreh.xyz:$(dirname "$LOGS_DIR")/ci-build.sh" -scp aux/ci/git-post-receive.sh "git.euandreh.xyz:$REMOTE_GIT_DIR/hooks/post-receive" diff --git a/aux/ci/report.sh b/aux/ci/report.sh deleted file mode 100755 index b82c061..0000000 --- a/aux/ci/report.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/sh -set -eu - -PROJECT_UC="$1" - -PASS='✅' -FAIL='❌' - -mkdir -p public/ci-logs public/ci-data - -OUT="$(mktemp)" -chmod 644 "$OUT" - -git fetch origin refs/notes/*:refs/notes/* ||: - -for c in $(git notes list | cut -d\ -f2); do - DATA="$(git notes --ref=refs/notes/ci-data show "$c")" - FILENAME="$(echo "$DATA" | cut -d\ -f2)" - echo "$DATA" > "public/ci-data/$FILENAME" - git notes --ref=refs/notes/ci-logs show "$c" > "public/ci-logs/$FILENAME" -done - -cat <<EOF >> "$OUT" -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="UTF-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1" /> - - <style> - pre { - display: inline; - } - </style> - </head> - <body> - <h1> - CI logs for $PROJECT_UC - </h1> - <ul> -EOF - -for f in $(find public/ci-data/ -type f | LANG=C.UTF-8 sort -r); do - DATA="$(cat "$f")" - STATUS="$(echo "$DATA" | cut -d\ -f1)" - FILENAME="$(echo "$DATA" | cut -d\ -f2)" - - if [ "$STATUS" = 0 ]; then - STATUS_MARKER="$PASS" - else - STATUS_MARKER="$FAIL" - fi - - cat <<EOF >> "$OUT" - <li> - <a href="ci-logs/$FILENAME"> - $STATUS_MARKER <pre>$FILENAME</pre> - </a> - </li> -EOF -done - -cat <<EOF >> "$OUT" - </ul> - </body> -</html> -EOF - -mv "$OUT" public/ci.html diff --git a/aux/guix/pinned-channels.scm b/aux/guix/pinned-channels.scm index b026813..504406f 100644 --- a/aux/guix/pinned-channels.scm +++ b/aux/guix/pinned-channels.scm @@ -1,7 +1,7 @@ (cons* (channel (name 'xyz-euandreh) - (url "git://git.euandreh.xyz/package-repository") + (url "git://euandreh.xyz/package-repository") (branch "main") (introduction (make-channel-introduction diff --git a/aux/guix/with-container.sh b/aux/guix/with-container.sh index 13b6cd3..b521c82 100755 --- a/aux/guix/with-container.sh +++ b/aux/guix/with-container.sh @@ -2,12 +2,12 @@ set -eux if [ -z "${1:-}" ]; then - guix time-machine --fallback -C aux/guix/pinned-channels.scm -- \ - environment --fallback -m aux/guix/manifest.scm + guix time-machine --fallback -C aux/guix/pinned-channels.scm -- \ + environment --fallback -m aux/guix/manifest.scm elif [ "$1" = '-p' ]; then - guix time-machine --fallback -C aux/guix/pinned-channels.scm -- \ - environment --fallback -m aux/guix/manifest.scm --pure -C + guix time-machine --fallback -C aux/guix/pinned-channels.scm -- \ + environment --fallback -m aux/guix/manifest.scm --pure -C else - guix time-machine --fallback -C aux/guix/pinned-channels.scm -- \ - environment --fallback -m aux/guix/manifest.scm --pure -C -- sh -c "$@" + guix time-machine --fallback -C aux/guix/pinned-channels.scm -- \ + environment --fallback -m aux/guix/manifest.scm --pure -C -- sh -c "$@" fi diff --git a/aux/tld.txt b/aux/tld.txt new file mode 100644 index 0000000..0cb8b8b --- /dev/null +++ b/aux/tld.txt @@ -0,0 +1 @@ +euandreh.xyz diff --git a/aux/workflow/README.sh b/aux/workflow/README.sh deleted file mode 100755 index aa5cbe6..0000000 --- a/aux/workflow/README.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh -set -eu - -mkdir -p public - -PROJECT_UC="$1" -PROJECT="$2" -MAILING_LIST="$3" - -RELEASES_LIST="$(mktemp)" -for version in $(git tag | perl -e 'print reverse <>'); do - echo "- version [$version](https://git.euandreh.xyz/$PROJECT/snapshot/$PROJECT-$version.tar.gz) ([sig](https://git.euandreh.xyz/$PROJECT/snapshot/$PROJECT-$version.tar.gz.asc)), released in $(git log -1 --format=%cd --date=short "$version")" >> "$RELEASES_LIST" -done - -RELEASES="$(mktemp)" -if [ -s "$RELEASES_LIST" ]; then - printf '\n# Releases\n\n' >> "$RELEASES" - cat "$RELEASES_LIST" >> "$RELEASES" -fi - -LINKS="$(mktemp)" -cat <<EOF > "$LINKS" - -# Links - -- [home page](https://$PROJECT.euandreh.xyz) -- [source code](https://git.euandreh.xyz/$PROJECT/) -- [bug tracking](https://$PROJECT.euandreh.xyz/TODOs.html) -- [mailing list](https://lists.sr.ht/~euandreh/$MAILING_LIST?search=%5B$PROJECT%5D) -- [CI logs](https://$PROJECT.euandreh.xyz/ci.html) -- [CHANGELOG](https://$PROJECT.euandreh.xyz/CHANGELOG.html) -EOF - -cat "README.md" "$LINKS" "$RELEASES" | \ - pandoc --toc \ - --highlight-style pygments \ - --toc-depth=2 \ - -s \ - --metadata title="$PROJECT_UC - README" \ - --metadata lang=en \ - -r commonmark \ - -w html \ - > public/index.html diff --git a/aux/workflow/TODOs.sh b/aux/workflow/TODOs.sh index 468b3a8..80059ee 100755 --- a/aux/workflow/TODOs.sh +++ b/aux/workflow/TODOs.sh @@ -6,25 +6,30 @@ mkdir -p public PROJECT_UC="$1" PROJECT="$2" MAILING_LIST="$3" +TLD="$(cat aux/tld.txt)" TODOS_REGEX='s/^## (TODO|DOING|WAITING|MEETING|INACTIVE|NEXT|CANCELLED|DONE) (.*) \{#(.*?)\}$/## <a href="#\3"><span class="\1">\1<\/span> \2<\/a>\n<span class="header-anchor" id="\3">#\3<\/span>\n/' TAGS_REGEX='s/tag:([\w-]+)/<span class="tag">\1<\/span>/g' -sed -e "s:@PROJECT_UC@:$PROJECT_UC:g" \ - -e "s:@PROJECT@:$PROJECT:g" \ - -e "s:@MAILING_LIST@:$MAILING_LIST:g" < aux/workflow/preamble.md | \ - printf '%s\n\n%s' \ - "$(cat -)" \ - "$(perl -pe "$TODOS_REGEX" TODOs.md | \ - perl -pe "$TAGS_REGEX")" | \ - pandoc --toc \ - --highlight-style pygments \ - --toc-depth=2 \ - -s \ - --metadata title="$PROJECT_UC - TODOs" \ - --metadata lang=en \ - -r commonmark \ - -w html \ - -H aux/workflow/style.css \ - > public/TODOs.html +sed -e "s:@PROJECT_UC@:$PROJECT_UC:g" \ + -e "s:@PROJECT@:$PROJECT:g" \ + -e "s:@MAILING_LIST@:$MAILING_LIST:g" \ + -e "s:@TLD@:$TLD:g" \ + < aux/workflow/preamble.md | \ + printf \ + '%s\n\n%s' \ + "$(cat -)" \ + "$(perl -pe "$TODOS_REGEX" TODOs.md | perl -pe "$TAGS_REGEX")" | \ + pandoc \ + --toc \ + --highlight-style pygments \ + --toc-depth=2 \ + -s \ + --metadata title="$PROJECT_UC - TODOs" \ + --metadata lang=en \ + -r commonmark \ + -w html \ + -H aux/workflow/favicon.html \ + -H aux/workflow/style.css \ + > public/TODOs.html diff --git a/aux/workflow/assert-changelog.sh b/aux/workflow/assert-changelog.sh index d39f527..8e81f1f 100755 --- a/aux/workflow/assert-changelog.sh +++ b/aux/workflow/assert-changelog.sh @@ -4,11 +4,11 @@ set -eu PROJECT="$1" for VVERSION in $(git tag); do - VERSION="${VVERSION#v}" - DATE="$(git log -1 --format=%cd --date=short "$VVERSION")" - CHANGELOG_ENTRY="# [$VERSION](https://git.euandreh.xyz/$PROJECT/commit/?id=$VVERSION) - $DATE" - if ! grep -qF "$CHANGELOG_ENTRY" CHANGELOG.md; then - echo "Missing '$CHANGELOG_ENTRY' entry from CHANGELOG.md" >&2 - exit 1 - fi + VERSION="${VVERSION#v}" + DATE="$(git log -1 --format=%cd --date=short "$VVERSION")" + CHANGELOG_ENTRY="# [$VERSION](https://git.euandreh.xyz/$PROJECT/commit/?id=$VVERSION) - $DATE" + if ! grep -qF "$CHANGELOG_ENTRY" CHANGELOG.md; then + echo "Missing '$CHANGELOG_ENTRY' entry from CHANGELOG.md" >&2 + exit 1 + fi done diff --git a/aux/workflow/assert-readme.sh b/aux/workflow/assert-readme.sh new file mode 100755 index 0000000..cef75dd --- /dev/null +++ b/aux/workflow/assert-readme.sh @@ -0,0 +1,59 @@ +#!/bin/sh +set -eu + +mkdir -p public + +PROJECT="$1" +MAILING_LIST="$2" +TLD="$(cat aux/tld.txt)" + +EXPECTED="$(mktemp)" +cat <<EOF >> "$EXPECTED" + +For running the extra development-only checks, run: + +\`\`\`shell +$ make dev-check +\`\`\` + +and for generating the documentation HTML and website, run: + +\`\`\`shell +$ make public +\`\`\` + + +## Links + +- [home page](https://$TLD/$PROJECT/) +- [source code](https://git.euandreh.xyz/$PROJECT/) +- [bug tracking](https://$TLD/$PROJECT/TODOs.html) +- [mailing list](https://lists.sr.ht/~euandreh/$MAILING_LIST?search=%5B$PROJECT%5D) +- [CI logs](https://$TLD/$PROJECT/ci.html) +- [CHANGELOG](https://$TLD/$PROJECT/CHANGELOG.html) +EOF + +RELEASES_LIST="$(mktemp)" +for version in $(git tag | perl -e 'print reverse <>'); do + echo "- version [$version](https://git.euandreh.xyz/$PROJECT/snapshot/$PROJECT-$version.tar.gz) ([sig](https://git.euandreh.xyz/$PROJECT/snapshot/$PROJECT-$version.tar.gz.asc)), released in $(git log -1 --format=%cd --date=short "$version")" >> "$RELEASES_LIST" +done + +if [ -s "$RELEASES_LIST" ]; then + printf '\n\n## Releases\n\n' >> "$EXPECTED" + cat "$RELEASES_LIST" >> "$EXPECTED" +fi + +cat <<EOF >> "$EXPECTED" + + +## License + +The code is licensed under [GNU Affero General Public License v3.0 or later][AGPL-3.0-or-later] (AGPL-3.0-or-later). + +[AGPL-3.0-or-later]: https://www.gnu.org/licenses/agpl-3.0.en.html +EOF + +if ! tail -n "$(wc -l < "$EXPECTED")" README.md | diff - "$EXPECTED"; then + echo 'Missing metadata at the end of README.md file' + exit 1 +fi diff --git a/aux/workflow/assert-todos.sh b/aux/workflow/assert-todos.sh index cd7b611..ca73b7f 100755 --- a/aux/workflow/assert-todos.sh +++ b/aux/workflow/assert-todos.sh @@ -2,56 +2,56 @@ set -eu if git grep FIXME | grep -v '^TODOs.md' | grep -v '^aux/workflow/assert-todos.sh'; then - echo "Found dangling FIXME markers on the project." - echo "You should write them down properly on TODOs.md." - exit 1 + echo "Found dangling FIXME markers on the project." + echo "You should write them down properly on TODOs.md." + exit 1 fi awk -F'{#' ' BEGIN { - exitstatus = 0 - h2flag = 0 - h2status = "" - prevline = "" - idx = 0 - delete ids[0] + exitstatus = 0 + h2flag = 0 + h2status = "" + prevline = "" + idx = 0 + delete ids[0] } h2flag == 1 { - split($0, l, " ") - timelinestatus = l[2] - if (h2status != timelinestatus) { - print "h2/timeline status mismatch for line " NR-1 - print prevline - print $0 - exitstatus = 1 - } - h2status = "" - h2flag = 0 + split($0, l, " ") + timelinestatus = l[2] + if (h2status != timelinestatus) { + print "h2/timeline status mismatch for line " NR-1 + print prevline + print $0 + exitstatus = 1 + } + h2status = "" + h2flag = 0 } /^## (TODO|DOING|WAITING|MEETING|INACTIVE|NEXT|CANCELLED|DONE)/ { - if (match($0, / \{#.*?\}$/) == 0) { - print "Missing ID for line " NR ":\n" $0 - exitstatus = 1 - } - id_with_prefix = substr($2, 0, length($2) - 1) - match(id_with_prefix, /^\w+-/) - id = substr(id_with_prefix, RLENGTH + 1) - if (id in arr) { - print "Duplicate ID: " id - exitstatus = 1 - } else { - arr[id] = 1 - } + if (match($0, / \{#.*?\}$/) == 0) { + print "Missing ID for line " NR ":\n" $0 + exitstatus = 1 + } + id_with_prefix = substr($2, 0, length($2) - 1) + match(id_with_prefix, /^\w+-/) + id = substr(id_with_prefix, RLENGTH + 1) + if (id in arr) { + print "Duplicate ID: " id + exitstatus = 1 + } else { + arr[id] = 1 + } - split($0, l, " ") - h2status = l[2] - h2flag = 1 - prevline = $0 + split($0, l, " ") + h2status = l[2] + h2flag = 1 + prevline = $0 } /^# Scratch$/ { - exit exitstatus + exit exitstatus } ' TODOs.md diff --git a/aux/workflow/commonmark.sh b/aux/workflow/commonmark.sh index e9609c2..6016f51 100755 --- a/aux/workflow/commonmark.sh +++ b/aux/workflow/commonmark.sh @@ -5,13 +5,16 @@ mkdir -p public PROJECT_UC="$1" F="$2" +OUT="${3:-${F%.*}.html}" -pandoc --toc \ - --highlight-style pygments \ - --toc-depth=2 \ - -s \ - --metadata title="$PROJECT_UC - ${F%.*}" \ - --metadata lang=en \ - -r commonmark \ - -w html \ - < "$F" > "public/${F%.*}.html" +pandoc \ + --toc \ + --highlight-style pygments \ + --toc-depth=2 \ + -s \ + --metadata title="$PROJECT_UC - ${F%.*}" \ + --metadata lang=en \ + -r commonmark \ + -w html \ + -H aux/workflow/favicon.html \ + < "$F" > "public/$OUT" diff --git a/aux/workflow/dist.sh b/aux/workflow/dist.sh index 0ae0ec4..45f8d7e 100755 --- a/aux/workflow/dist.sh +++ b/aux/workflow/dist.sh @@ -7,18 +7,18 @@ VVERSION="v$2" PROJECT="$3" if git show "$VVERSION" 1>/dev/null 2>/dev/null; then - echo "Version '$VVERSION' already exists." >&2 - exit 1 + echo "Version '$VVERSION' already exists." >&2 + exit 1 fi if [ "$DATE" != "$(git log -1 --format=%cd --date=short HEAD)" ]; then - echo "Date '$DATE' is not up-to-date." >&2 - exit 1 + echo "Date '$DATE' is not up-to-date." >&2 + exit 1 fi if [ "Release $VVERSION" != "$(git log --format=%B -1 HEAD | head -n1)" ]; then - echo "Commit message isn't 'Release $VVERSION'." >&2 - exit 1 + echo "Commit message isn't 'Release $VVERSION'." >&2 + exit 1 fi sh aux/workflow/assert-changelog.sh "$DATE" "$VERSION" "$PROJECT" diff --git a/aux/workflow/favicon.html b/aux/workflow/favicon.html new file mode 100644 index 0000000..8f9327c --- /dev/null +++ b/aux/workflow/favicon.html @@ -0,0 +1 @@ +<link rel="icon" type="image/svg+xml" href="favicon.svg" /> diff --git a/aux/workflow/favicon.png b/aux/workflow/favicon.png Binary files differnew file mode 100644 index 0000000..051fdf1 --- /dev/null +++ b/aux/workflow/favicon.png diff --git a/aux/workflow/favicon.svg b/aux/workflow/favicon.svg new file mode 100644 index 0000000..ce566b2 --- /dev/null +++ b/aux/workflow/favicon.svg @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"> + <path d="M 0 8 L 1 8 L 1 9 L 0 9 L 0 8 Z" /> + <path d="M 0 13 L 1 13 L 1 14 L 0 14 L 0 13 Z" /> + <path d="M 1 8 L 2 8 L 2 9 L 1 9 L 1 8 Z" /> + <path d="M 1 13 L 2 13 L 2 14 L 1 14 L 1 13 Z" /> + <path d="M 2 8 L 3 8 L 3 9 L 2 9 L 2 8 Z" /> + <path d="M 2 13 L 3 13 L 3 14 L 2 14 L 2 13 Z" /> + <path d="M 3 8 L 4 8 L 4 9 L 3 9 L 3 8 Z" /> + <path d="M 3 13 L 4 13 L 4 14 L 3 14 L 3 13 Z" /> + <path d="M 4 7 L 5 7 L 5 8 L 4 8 L 4 7 Z" /> + <path d="M 4 8 L 5 8 L 5 9 L 4 9 L 4 8 Z" /> + <path d="M 4 13 L 5 13 L 5 14 L 4 14 L 4 13 Z" /> + <path d="M 5 6 L 6 6 L 6 7 L 5 7 L 5 6 Z" /> + <path d="M 5 7 L 6 7 L 6 8 L 5 8 L 5 7 Z" /> + <path d="M 5 13 L 6 13 L 6 14 L 5 14 L 5 13 Z" /> + <path d="M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 Z" /> + <path d="M 6 6 L 7 6 L 7 7 L 6 7 L 6 6 Z" /> + <path d="M 6 14 L 7 14 L 7 15 L 6 15 L 6 14 Z" /> + <path d="M 7 1 L 8 1 L 8 2 L 7 2 L 7 1 Z" /> + <path d="M 7 14 L 8 14 L 8 15 L 7 15 L 7 14 Z" /> + <path d="M 7 15 L 8 15 L 8 16 L 7 16 L 7 15 Z" /> + <path d="M 7 2 L 8 2 L 8 3 L 7 3 L 7 2 Z" /> + <path d="M 7 3 L 8 3 L 8 4 L 7 4 L 7 3 Z" /> + <path d="M 7 4 L 8 4 L 8 5 L 7 5 L 7 4 Z" /> + <path d="M 7 5 L 8 5 L 8 6 L 7 6 L 7 5 Z" /> + <path d="M 8 1 L 9 1 L 9 2 L 8 2 L 8 1 Z" /> + <path d="M 8 15 L 9 15 L 9 16 L 8 16 L 8 15 Z" /> + <path d="M 9 1 L 10 1 L 10 2 L 9 2 L 9 1 Z" /> + <path d="M 9 2 L 10 2 L 10 3 L 9 3 L 9 2 Z" /> + <path d="M 9 6 L 10 6 L 10 7 L 9 7 L 9 6 Z" /> + <path d="M 9 15 L 10 15 L 10 16 L 9 16 L 9 15 Z" /> + <path d="M 10 2 L 11 2 L 11 3 L 10 3 L 10 2 Z" /> + <path d="M 10 3 L 11 3 L 11 4 L 10 4 L 10 3 Z" /> + <path d="M 10 4 L 11 4 L 11 5 L 10 5 L 10 4 Z" /> + <path d="M 10 5 L 11 5 L 11 6 L 10 6 L 10 5 Z" /> + <path d="M 10 6 L 11 6 L 11 7 L 10 7 L 10 6 Z" /> + <path d="M 11 6 L 12 6 L 12 7 L 11 7 L 11 6 Z" /> + <path d="M 11 8 L 12 8 L 12 9 L 11 9 L 11 8 Z" /> + <path d="M 10 15 L 11 15 L 11 16 L 10 16 L 10 15 Z" /> + <path d="M 11 10 L 12 10 L 12 11 L 11 11 L 11 10 Z" /> + <path d="M 11 12 L 12 12 L 12 13 L 11 13 L 11 12 Z" /> + <path d="M 11 14 L 12 14 L 12 15 L 11 15 L 11 14 Z" /> + <path d="M 11 15 L 12 15 L 12 16 L 11 16 L 11 15 Z" /> + <path d="M 12 6 L 13 6 L 13 7 L 12 7 L 12 6 Z" /> + <path d="M 12 8 L 13 8 L 13 9 L 12 9 L 12 8 Z" /> + <path d="M 12 10 L 13 10 L 13 11 L 12 11 L 12 10 Z" /> + <path d="M 12 12 L 13 12 L 13 13 L 12 13 L 12 12 Z" /> + <path d="M 12 14 L 13 14 L 13 15 L 12 15 L 12 14 Z" /> + <path d="M 13 6 L 14 6 L 14 7 L 13 7 L 13 6 Z" /> + <path d="M 13 8 L 14 8 L 14 9 L 13 9 L 13 8 Z" /> + <path d="M 13 10 L 14 10 L 14 11 L 13 11 L 13 10 Z" /> + <path d="M 13 12 L 14 12 L 14 13 L 13 13 L 13 12 Z" /> + <path d="M 13 13 L 14 13 L 14 14 L 13 14 L 13 13 Z" /> + <path d="M 13 14 L 14 14 L 14 15 L 13 15 L 13 14 Z" /> + <path d="M 14 7 L 15 7 L 15 8 L 14 8 L 14 7 Z" /> + <path d="M 14 8 L 15 8 L 15 9 L 14 9 L 14 8 Z" /> + <path d="M 14 9 L 15 9 L 15 10 L 14 10 L 14 9 Z" /> + <path d="M 14 10 L 15 10 L 15 11 L 14 11 L 14 10 Z" /> + <path d="M 14 11 L 15 11 L 15 12 L 14 12 L 14 11 Z" /> + <path d="M 14 12 L 15 12 L 15 13 L 14 13 L 14 12 Z" /> +</svg> diff --git a/aux/workflow/preamble.md b/aux/workflow/preamble.md index 9fbbd2c..30efe0b 100644 --- a/aux/workflow/preamble.md +++ b/aux/workflow/preamble.md @@ -2,7 +2,7 @@ TODOs for @PROJECT_UC@. -See also [@PROJECT@.euandreh.xyz](https://@PROJECT@.euandreh.xyz/) and [CI logs](https://@PROJECT@.euandreh.xyz/ci.html). +See also [@TLD@/@PROJECT@/](https://@TLD@/@PROJECT@/) and [CI logs](https://@TLD@/@PROJECT@/ci.html). Register a new one at [~euandreh/@MAILING_LIST@@lists.sr.ht](mailto:~euandreh/@MAILING_LIST@@lists.sr.ht?subject=%5B@PROJECT@%5D%20BUG%20or%20TASK%3A%20%3Cdescription%3E) diff --git a/aux/workflow/public.sh b/aux/workflow/public.sh index d7df96b..853583c 100755 --- a/aux/workflow/public.sh +++ b/aux/workflow/public.sh @@ -5,11 +5,13 @@ PROJECT_UC="$1" PROJECT="$2" MAILING_LIST="$3" -sh aux/workflow/TODOs.sh "$PROJECT_UC" "$PROJECT" "$MAILING_LIST" -sh aux/workflow/README.sh "$PROJECT_UC" "$PROJECT" "$MAILING_LIST" +sh aux/workflow/TODOs.sh "$PROJECT_UC" "$PROJECT" "$MAILING_LIST" +sh aux/workflow/commonmark.sh "$PROJECT" README.md index.html ||: if [ -f CHANGELOG.md ]; then sh aux/workflow/commonmark.sh "$PROJECT" CHANGELOG.md fi sh aux/ci/report.sh "$PROJECT" + +cp aux/workflow/favicon.* public/ diff --git a/aux/workflow/sign-tarballs.sh b/aux/workflow/sign-tarballs.sh index b88ff33..8de6ac4 100755 --- a/aux/workflow/sign-tarballs.sh +++ b/aux/workflow/sign-tarballs.sh @@ -5,13 +5,13 @@ PROJECT="$1" SIGNATURES="$(git notes --ref=refs/notes/signatures/tar.gz list | cut -d\ -f2)" for tag in $(git tag); do - COMMIT="$(git rev-list -n1 "$tag")" - if ! echo "$SIGNATURES" | grep -qF "$COMMIT"; then - echo "Adding missing signature to $tag" >&2 - git notes --ref=refs/notes/signatures/tar.gz add -f -C "$( - git archive --format tar.gz --prefix "$PROJECT-${tag#v}/" "$tag" | - gpg --output - --armor --detach-sign | - git hash-object -w --stdin - )" "$tag" - fi + COMMIT="$(git rev-list -n1 "$tag")" + if ! echo "$SIGNATURES" | grep -qF "$COMMIT"; then + echo "Adding missing signature to $tag" >&2 + git notes --ref=refs/notes/signatures/tar.gz add -f -C "$( + git archive --format tar.gz --prefix "$PROJECT-${tag#v}/" "$tag" | + gpg --output - --armor --detach-sign | + git hash-object -w --stdin + )" "$tag" + fi done |