aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/assert-todos.sh32
-rwxr-xr-xscripts/ci-build.sh3
-rwxr-xr-xscripts/generate-tasks-and-bugs.sh24
3 files changed, 58 insertions, 1 deletions
diff --git a/scripts/assert-todos.sh b/scripts/assert-todos.sh
index 7c32524..c3139d1 100755
--- a/scripts/assert-todos.sh
+++ b/scripts/assert-todos.sh
@@ -9,3 +9,35 @@ if grep -R FIXME $(git ls-files) | grep -v '^TODOs.org' | grep -v '^.git/' | gre
echo "You should write them down properly on TODOs.org."
exit 1
fi
+
+contains-element() {
+ local e match="$1"
+ shift
+ for e; do [[ "$e" == "$match" ]] && return 0; done
+ return 1
+}
+
+KNOWN_IDS=()
+has_error=0
+# shellcheck disable=2013
+for todo in $(sed -e '/^\* Tasks$/,/^\* Improvements$/!d' TODOs.org | grep -nE '^\*\* .*$' | cut -d: -f1); do
+ if grep -E '^\*\* (CANCELLED|DONE)' <(sed "${todo}q;d" TODOs.org) > /dev/null; then
+ ID_OFFSET=3
+ else
+ ID_OFFSET=2
+ fi
+ ID="$(sed "$((todo+ID_OFFSET))q;d" TODOs.org)"
+ if grep '^:CUSTOM_ID: .*$' <(echo "$ID") > /dev/null; then
+ if contains-element "$ID" "${KNOWN_IDS[@]}"; then
+ echo "Duplicated ID: $ID"
+ has_error=1
+ else
+ KNOWN_IDS+=("$ID")
+ fi
+ else
+ echo "Missing ID for TODO in line $todo"
+ has_error=1
+ fi
+done
+
+exit "$has_error"
diff --git a/scripts/ci-build.sh b/scripts/ci-build.sh
index 9b89160..f8e3aa6 100755
--- a/scripts/ci-build.sh
+++ b/scripts/ci-build.sh
@@ -36,4 +36,5 @@ pushd "$CLONE"
git config --global user.email git@euandre.org
git config --global user.name 'EuAndreh CI'
-./scripts/with-container.sh 'make check publish'
+./scripts/with-container.sh 'make check public'
+mv public/ /srv/http/vps/
diff --git a/scripts/generate-tasks-and-bugs.sh b/scripts/generate-tasks-and-bugs.sh
new file mode 100755
index 0000000..cbbce29
--- /dev/null
+++ b/scripts/generate-tasks-and-bugs.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+set -Eeuo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
+cd ../
+
+mkdir -p public
+
+cat workflow/vendor/org.css workflow/workflow.css > public/styles.css
+
+sed -e '/^\* Tasks$/,/^\* Improvements$/!d' TODOs.org | \
+ head -n -1 | \
+ cat workflow/preamble.org - > tasks-and-bugs.org
+
+emacs tasks-and-bugs.org \
+ -l workflow/vendor/htmlize.el \
+ --eval '(setq org-export-allow-bind-keywords t)' \
+ -f org-html-export-to-html \
+ --batch \
+ --kill
+
+# Add anchor link to bug headers
+perl -pe \
+ 's|^<h3 id="(.*?)">(.*)</h3>$|<h3 id="\1">\2<br /><a class="header-anchor" href="#\1">#\1</a></h3>|' \
+ tasks-and-bugs.html > public/tasks-and-bugs.html