From 202556115fcf94dfdefbf546f5d64325316903ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20H=C3=BCbelbauer?= Date: Sat, 3 Jun 2023 16:55:38 +0200 Subject: [PATCH] chore: sed invocations for docs build to work on macOS (#615) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: sed invocations to work out of the box on macOS These fixes make the sed invocations run on macOS but I am not sure if they will break the GNU sed invocations in return… * fix: add macOS branches to the shell scripts The sed command line was difficult (impossible?) to be made portable so I just added macOS conditions. * Prototype the solution using an alias It seems that this will not work because I keep getting "sedi: command not found". * fix: use a Bash function instead of an alias to run sed portably This seems to work on my local so let's see if it runs in the CI on GitHub. * fix: use 2 spaces like the original scripts did Not sure why VS Code went with 4. * fix: use sedi for the build-changelog `1i\` part as well I am curious if Ubuntu will handle the newline… --- bin/build-changelog.sh | 17 ++++++++++++++--- bin/build-contributors.sh | 19 ++++++++++++++----- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/bin/build-changelog.sh b/bin/build-changelog.sh index 1f01ead7d..32e8dddef 100755 --- a/bin/build-changelog.sh +++ b/bin/build-changelog.sh @@ -1,8 +1,17 @@ #!/usr/bin/env bash +# Run `sed` in a way that's compatible with both macOS (BSD) and Linux (GNU) +sedi() { + if [[ "$OSTYPE" == "darwin"* ]]; then + sed -i '' "$@" + else + sed -i "$@" + fi +} + cd docs cp ../CHANGELOG.md source/tutorials/changelog.md -sed -i \ +sedi \ -e 's/{%/{% raw %}{%{% endraw %}/g' \ -e 's/{{/{% raw %}{{{% endraw %}/g' \ -e '1 s/"/\"/g' \ @@ -11,5 +20,7 @@ sed -i \ source/tutorials/changelog.md cp source/tutorials/changelog.md source/zh-cn/tutorials/changelog.md -sed -i '1i ---\ntitle: Changelog\nauto: true\n---\n' source/tutorials/changelog.md -sed -i '1i ---\ntitle: 更新日志\nauto: true\n---\n' source/zh-cn/tutorials/changelog.md +sedi -e '1i\ + ---\ntitle: Changelog\nauto: true\n---\n' source/tutorials/changelog.md +sedi -e '1i\ + ---\ntitle: 更新日志\nauto: true\n---\n' source/zh-cn/tutorials/changelog.md diff --git a/bin/build-contributors.sh b/bin/build-contributors.sh index 036b43bda..bceae5e21 100755 --- a/bin/build-contributors.sh +++ b/bin/build-contributors.sh @@ -1,10 +1,19 @@ #!/usr/bin/env bash +# Run `sed` in a way that's compatible with both macOS (BSD) and Linux (GNU) +sedi() { + if [[ "$OSTYPE" == "darwin"* ]]; then + sed -i '' "$@" + else + sed -i "$@" + fi +} + cp .all-contributorsrc docs/.all-contributorsrc -sed -i \ - -e 's/README.md/docs\/themes\/navy\/layout\/partial\/all-contributors.swig/g' \ - -e 's/"contributorsPerLine": 7/"contributorsPerLine": 65535/g' \ - docs/.all-contributorsrc +sedi \ + -e 's/README.md/docs\/themes\/navy\/layout\/partial\/all-contributors.swig/g' \ + -e 's/"contributorsPerLine": 7/"contributorsPerLine": 65535/g' \ + docs/.all-contributorsrc all-contributors --config docs/.all-contributorsrc generate -sed -i 's/
.*<\/td>/<\/a><\/td>/g' docs/themes/navy/layout/partial/all-contributors.swig +sedi 's/
.*<\/td>/<\/a><\/td>/g' docs/themes/navy/layout/partial/all-contributors.swig