在预推 git 钩子中查找包装字符串

Find wrapped strings in a pre-push git hook

我正在尝试查看 git 推送中所做的更改,并找到包装字符串的任何实例,如下所示:___('something to be translated') 以便我可以进行一些后续 API 调用该信息。但是由于某种原因,当我尝试使用 git diff --cached 调用时,我无法获得任何有用的输出。我已经想出我的正则表达式模式来进行搜索。对此有任何建议都很好。

我的代码看起来像这样:

FILES_PATTERN="/___[^)]+\)/gm"
git diff --cached --name-only | \
    grep -E $FILES_PATTERN | \
    GREP_COLOR='4;5;37;41' xargs grep --color --with-filename -n  echo 'COMMIT contains strings that need to be uploaded to Lokalise.' && exit 1

试试这个。我认为您的 bash 脚本是主要问题。它的格式不正确。这也将使输出仅是除了 ___() 匹配之外的修改行。

pattern="___\([^)]+\)"
echo $(git diff $remote_sha $local_sha | grep -E $pattern | grep '^[+-]')

希望这有效。