aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsilverwind2023-03-04 15:29:28 +0100
committerGitHub2023-03-04 14:29:28 +0000
commitb6d2c94966d9911dbc967e0080e07929b179128e (patch)
tree4d4ae22e6040763233f8c2a30df4219d43fcdd5b
parent547c173dabb10ec973ce9af24243072466960d6e (diff)
Improve sed detection in update-locales.sh (#23254)
- ~~Make scripts work from any directory~~ - Detect sed version just like Makefile does --------- Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: John Olheiser <john.olheiser@gmail.com>
-rwxr-xr-xbuild/update-locales.sh21
1 files changed, 11 insertions, 10 deletions
diff --git a/build/update-locales.sh b/build/update-locales.sh
index b7611c0c9..596ddfec0 100755
--- a/build/update-locales.sh
+++ b/build/update-locales.sh
@@ -1,13 +1,14 @@
-#!/bin/bash
+#!/bin/sh
-set -e
-
-SED=sed
+# this script runs in alpine image which only has `sh` shell
-if [[ $OSTYPE == 'darwin'* ]]; then
- # for macOS developers, use "brew install gnu-sed"
- SED=gsed
+set +e
+if sed --version 2>/dev/null | grep -q GNU; then
+ SED_INPLACE="sed -i"
+else
+ SED_INPLACE="sed -i ''"
fi
+set -e
if [ ! -f ./options/locale/locale_en-US.ini ]; then
echo "please run this script in the root directory of the project"
@@ -32,7 +33,7 @@ mv ./options/locale/locale_en-US.ini ./options/
# * remove the trailing quote
# * unescape the quotes
# * eg: key="...\"..." => key=..."...
-$SED -i -r -e '/^[-.A-Za-z0-9_]+[ ]*=[ ]*".*"$/ {
+$SED_INPLACE -r -e '/^[-.A-Za-z0-9_]+[ ]*=[ ]*".*"$/ {
s/^([-.A-Za-z0-9_]+)[ ]*=[ ]*"/\1=/
s/"$//
s/\\"/"/g
@@ -41,8 +42,8 @@ $SED -i -r -e '/^[-.A-Za-z0-9_]+[ ]*=[ ]*".*"$/ {
# * if the escaped line is incomplete like `key="...` or `key=..."`, quote it with backticks
# * eg: key="... => key=`"...`
# * eg: key=..." => key=`..."`
-$SED -i -r -e 's/^([-.A-Za-z0-9_]+)[ ]*=[ ]*(".*[^"])$/\1=`\2`/' ./options/locale/*.ini
-$SED -i -r -e 's/^([-.A-Za-z0-9_]+)[ ]*=[ ]*([^"].*")$/\1=`\2`/' ./options/locale/*.ini
+$SED_INPLACE -r -e 's/^([-.A-Za-z0-9_]+)[ ]*=[ ]*(".*[^"])$/\1=`\2`/' ./options/locale/*.ini
+$SED_INPLACE -r -e 's/^([-.A-Za-z0-9_]+)[ ]*=[ ]*([^"].*")$/\1=`\2`/' ./options/locale/*.ini
# Remove translation under 25% of en_us
baselines=$(wc -l "./options/locale_en-US.ini" | cut -d" " -f1)