mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-08 18:04:14 +01:00
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>
This commit is contained in:
parent
547c173dab
commit
b6d2c94966
1 changed files with 11 additions and 10 deletions
|
@ -1,13 +1,14 @@
|
||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
|
|
||||||
set -e
|
# this script runs in alpine image which only has `sh` shell
|
||||||
|
|
||||||
SED=sed
|
set +e
|
||||||
|
if sed --version 2>/dev/null | grep -q GNU; then
|
||||||
if [[ $OSTYPE == 'darwin'* ]]; then
|
SED_INPLACE="sed -i"
|
||||||
# for macOS developers, use "brew install gnu-sed"
|
else
|
||||||
SED=gsed
|
SED_INPLACE="sed -i ''"
|
||||||
fi
|
fi
|
||||||
|
set -e
|
||||||
|
|
||||||
if [ ! -f ./options/locale/locale_en-US.ini ]; then
|
if [ ! -f ./options/locale/locale_en-US.ini ]; then
|
||||||
echo "please run this script in the root directory of the project"
|
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
|
# * remove the trailing quote
|
||||||
# * unescape the quotes
|
# * unescape the quotes
|
||||||
# * eg: key="...\"..." => key=..."...
|
# * 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/^([-.A-Za-z0-9_]+)[ ]*=[ ]*"/\1=/
|
||||||
s/"$//
|
s/"$//
|
||||||
s/\\"/"/g
|
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
|
# * if the escaped line is incomplete like `key="...` or `key=..."`, quote it with backticks
|
||||||
# * eg: key="... => key=`"...`
|
# * eg: key="... => key=`"...`
|
||||||
# * eg: key=..." => key=`..."`
|
# * eg: key=..." => key=`..."`
|
||||||
$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 -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
|
||||||
|
|
||||||
# Remove translation under 25% of en_us
|
# Remove translation under 25% of en_us
|
||||||
baselines=$(wc -l "./options/locale_en-US.ini" | cut -d" " -f1)
|
baselines=$(wc -l "./options/locale_en-US.ini" | cut -d" " -f1)
|
||||||
|
|
Loading…
Reference in a new issue