fix sed for MacOS (#36)

Close #4

Right now on MacOS, sed will produce backup files, because on Mac, If do something like below using bash script

```
$SED_INPLACE '1s/---/---\nisOutdated: true/' $file
```

It will become the following on executed, and a backup file will be produced:

```
sed -i ''\'''\''' '1s/---/---\nisOutdated: true/' ./docs/content/doc/help/faq.zh-cn.md
```

The way to fix this in this PR is to change the `SED_INPLACE` to a function. [Reference](aa19c2d125/generate-cpp.sh (L4)) (Tested on my
Mac and backup files with suffix '' will not be produced after changing to function)

Reviewed-on: https://gitea.com/gitea/gitea-docusaurus/pulls/36
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: HesterG <hestergong@gmail.com>
Co-committed-by: HesterG <hestergong@gmail.com>
This commit is contained in:
HesterG
2023-06-20 14:47:10 +00:00
committed by techknowlogick
parent a5d22599e1
commit c82e0fcc8d
2 changed files with 37 additions and 32 deletions

View File

@ -9,11 +9,14 @@
set -xe
if sed --version 2>/dev/null | grep -q GNU; then
SED_INPLACE="sed -i"
else
SED_INPLACE="sed -i ''"
fi
SED_INPLACE() {
if sed --version 2>/dev/null | grep -q GNU; then
sed -i "$@"
else
sed -i '' "$@"
fi
}
version="$1"
locale="$2"
cur_path=`pwd`
@ -31,7 +34,7 @@ for file in `find ./docs/content/doc -name "*.${locale}.md"`; do
fi
if [[ "$latest_commit_time_en" -gt "$latest_commit_time_locale" ]]; then
echo "file: $file, lastest commit timestamp: $latest_commit_time_en (en ver), $latest_commit_time_locale ($locale ver)"
$SED_INPLACE '1s/---/---\nisOutdated: true/' $file
SED_INPLACE '1s/---/---\nisOutdated: true/' $file
fi
done