diff options
author | silverwind <me@silverwind.io> | 2023-03-04 15:29:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-04 14:29:28 +0000 |
commit | b6d2c94966d9911dbc967e0080e07929b179128e (patch) | |
tree | 4d4ae22e6040763233f8c2a30df4219d43fcdd5b | |
parent | 547c173dabb10ec973ce9af24243072466960d6e (diff) | |
download | gitea-b6d2c94966d9911dbc967e0080e07929b179128e.tar.gz gitea-b6d2c94966d9911dbc967e0080e07929b179128e.zip |
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-x | build/update-locales.sh | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/build/update-locales.sh b/build/update-locales.sh index b7611c0c9a..596ddfec03 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) |