diff options
Diffstat (limited to 'aux')
-rwxr-xr-x | aux/ci/ci-build.sh | 9 | ||||
-rwxr-xr-x | aux/ci/git-pre-push.sh | 3 | ||||
-rwxr-xr-x | aux/ci/report.sh | 4 | ||||
-rw-r--r-- | aux/guix/manifest.scm | 1 | ||||
-rwxr-xr-x | aux/lib.sh | 30 | ||||
-rwxr-xr-x | aux/workflow/assert-manpages.sh | 10 | ||||
-rwxr-xr-x | aux/workflow/assert-readme.sh | 6 | ||||
-rwxr-xr-x | aux/workflow/assert-spelling.sh | 8 |
8 files changed, 59 insertions, 12 deletions
diff --git a/aux/ci/ci-build.sh b/aux/ci/ci-build.sh index be97866..74e9558 100755 --- a/aux/ci/ci-build.sh +++ b/aux/ci/ci-build.sh @@ -7,6 +7,13 @@ read -r _ SHA _ # oldrev newrev refname FILENAME="$(date -Is)-$SHA.log" LOGFILE="$LOGS_DIR/$FILENAME" +mkdtemp() { + name="$(echo 'mkstemp(template)' | m4 -D template="${TMPDIR:-/tmp}/m4-tmpname.")" + rm -f "$name" + mkdir "$name" + echo "$name" +} + { echo "Starting CI job at: $(date -Is)" @@ -35,7 +42,7 @@ EOF unset GIT_DIR REMOTE="$PWD" - cd "$(mktemp -d)" + cd "$(mkdtemp)" git clone "$REMOTE" . git config --global user.email git@euandre.org git config --global user.name 'EuAndreh CI' diff --git a/aux/ci/git-pre-push.sh b/aux/ci/git-pre-push.sh index cccd6e5..4fcf733 100755 --- a/aux/ci/git-pre-push.sh +++ b/aux/ci/git-pre-push.sh @@ -2,12 +2,13 @@ set -eux TLD="$(cat aux/tld.txt)" +. aux/lib.sh PROJECT="$(basename "$PWD")" LOGS_DIR="/opt/ci/$PROJECT/logs" REMOTE_GIT_DIR="/srv/git/$PROJECT.git" -DESCRIPTION="$(mktemp)" +DESCRIPTION="$(mkstemp)" if [ -f description ] then cp description "$DESCRIPTION" diff --git a/aux/ci/report.sh b/aux/ci/report.sh index 710451c..a90d10a 100755 --- a/aux/ci/report.sh +++ b/aux/ci/report.sh @@ -2,6 +2,8 @@ set -eu TLD="$(cat aux/tld.txt)" +. aux/lib.sh + while getopts 'n:o:' flag; do case "$flag" in n) @@ -32,7 +34,7 @@ FAIL='❌' mkdir -p "$OUTDIR/ci-logs" "$OUTDIR/ci-data" -OUT="$(mktemp)" +OUT="$(mkstemp)" chmod 644 "$OUT" git fetch origin refs/notes/ci-data:refs/notes/ci-data ||: & diff --git a/aux/guix/manifest.scm b/aux/guix/manifest.scm index 58dbc6e..91a1b84 100644 --- a/aux/guix/manifest.scm +++ b/aux/guix/manifest.scm @@ -6,6 +6,7 @@ diffutils grep sed + m4 git gawk make diff --git a/aux/lib.sh b/aux/lib.sh new file mode 100755 index 0000000..c31c4fb --- /dev/null +++ b/aux/lib.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +# +# Generally, utilities that I expected to exist in POSIX, but don't. +# + +uuid() { + # Taken from: + # https://serverfault.com/a/799198 + od -xN20 /dev/urandom | \ + head -1 | \ + awk '{OFS="-"; print $2$3,$4,$5,$6,$7$8$9}' +} + +tmpname() { + echo 'mkstemp(template)' | m4 -D template="${TMPDIR:-/tmp}/m4-tmpname." +} + +mkstemp() { + name="$(tmpname)" + touch "$name" + echo "$name" +} + +mkdtemp() { + name="$(tmpname)" + rm -f "$name" + mkdir "$name" + echo "$name" +} diff --git a/aux/workflow/assert-manpages.sh b/aux/workflow/assert-manpages.sh index 8a3c497..b26c7a4 100755 --- a/aux/workflow/assert-manpages.sh +++ b/aux/workflow/assert-manpages.sh @@ -2,6 +2,8 @@ set -eu TLD="$(cat aux/tld.txt)" +. aux/lib.sh + IN_PLACE=false while getopts 'l:n:m:i' flag; do case "$flag" in @@ -36,7 +38,7 @@ assert_arg "${MAILING_LIST:-}" '-m MAILING_LIST' assert_arg "${LANGS:-}" '-l LANGS' -EXPECTED_EN="$(mktemp)" +EXPECTED_EN="$(mkstemp)" cat <<EOF | sed 's|-|\\-|g' >> "$EXPECTED_EN" @@ -72,7 +74,7 @@ Comments and discussions .UE . EOF -EXPECTED_PT="$(mktemp)" +EXPECTED_PT="$(mkstemp)" cat <<EOF | sed 's|-|\\-|g' >> "$EXPECTED_PT" @@ -108,7 +110,7 @@ Comentários e discussões .UE . EOF -EXPECTED_FR="$(mktemp)" +EXPECTED_FR="$(mkstemp)" cat <<EOF | sed 's|-|\\-|g' >> "$EXPECTED_FR" @@ -146,7 +148,7 @@ Commentaires et discussions .UE . EOF -EXPECTED_EO="$(mktemp)" +EXPECTED_EO="$(mkstemp)" cat <<EOF | sed 's|-|\\-|g' >> "$EXPECTED_EO" diff --git a/aux/workflow/assert-readme.sh b/aux/workflow/assert-readme.sh index 99ec692..843fd86 100755 --- a/aux/workflow/assert-readme.sh +++ b/aux/workflow/assert-readme.sh @@ -2,6 +2,8 @@ set -eu TLD="$(cat aux/tld.txt)" +. aux/lib.sh + while getopts 'n:m:' flag; do case "$flag" in n) @@ -27,7 +29,7 @@ assert_arg() { assert_arg "${PROJECT:-}" '-n PROJECT' assert_arg "${MAILING_LIST:-}" '-m MAILING_LIST' -EXPECTED="$(mktemp)" +EXPECTED="$(mkstemp)" cat <<EOF >> "$EXPECTED" For running the extra development-only checks, run: @@ -57,7 +59,7 @@ Send contributions to the [mailing list] via [\`git send-email\`](https://git-se [mailing list]: https://lists.sr.ht/~euandreh/$MAILING_LIST?search=%5B$PROJECT%5D EOF -RELEASES_LIST="$(mktemp)" +RELEASES_LIST="$(mkstemp)" add_release() { DATE="$1" VVERSION="$2" diff --git a/aux/workflow/assert-spelling.sh b/aux/workflow/assert-spelling.sh index cdc6d28..f1eef6f 100755 --- a/aux/workflow/assert-spelling.sh +++ b/aux/workflow/assert-spelling.sh @@ -1,11 +1,13 @@ #!/bin/sh set -eu +. aux/lib.sh + sort_dicts() { for f in po/spelling/*.txt; do if ! LANG=POSIX sort "$f" | diff - "$f"; then if [ "$IN_PLACE" = true ]; then - OUT="$(mktemp)" + OUT="$(mkstemp)" LANG=POSIX sort "$f" | uniq > "$OUT" mv "$OUT" "$f" else @@ -57,10 +59,10 @@ get_lang() { ' } -ACC="$(mktemp)" +ACC="$(mkstemp)" for f in "$@"; do l="$(get_lang "$f")" - CURR_DICT="$(mktemp)" + CURR_DICT="$(mkstemp)" cat po/spelling/international.txt "po/spelling/$l.txt" | sort | uniq > "$CURR_DICT" hunspell -u3 -H -d "$l" -p "$CURR_DICT" "$f" | tee -a "$ACC" >&2 done |