YETUS-359. shellcheck needs UTF-8 protection Signed-off-by: Sean Busbey <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/yetus/repo Commit: http://git-wip-us.apache.org/repos/asf/yetus/commit/dc63c866 Tree: http://git-wip-us.apache.org/repos/asf/yetus/tree/dc63c866 Diff: http://git-wip-us.apache.org/repos/asf/yetus/diff/dc63c866 Branch: refs/heads/YETUS-379 Commit: dc63c866b7a36d99307eee67b9d6c04e1d7aa10b Parents: 14cae37 Author: Allen Wittenauer <[email protected]> Authored: Wed Apr 13 08:06:19 2016 -0700 Committer: Allen Wittenauer <[email protected]> Committed: Sun Apr 17 10:12:25 2016 -0700 ---------------------------------------------------------------------- precommit/test-patch.d/shellcheck.sh | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/yetus/blob/dc63c866/precommit/test-patch.d/shellcheck.sh ---------------------------------------------------------------------- diff --git a/precommit/test-patch.d/shellcheck.sh b/precommit/test-patch.d/shellcheck.sh index f3d8fbd..e9a7e15 100755 --- a/precommit/test-patch.d/shellcheck.sh +++ b/precommit/test-patch.d/shellcheck.sh @@ -40,10 +40,38 @@ function shellcheck_filefilter function shellcheck_precheck { + declare langs + if ! verify_command "shellcheck" "${SHELLCHECK}"; then add_vote_table 0 shellcheck "Shellcheck was not available." delete_test shellcheck fi + + if [[ -z "${LANG}" ]]; then + langs=$(locale -a) + if [[ ${langs} =~ C.UTF-8 ]]; then + yetus_error "WARNING: shellcheck needs UTF-8 locale support. Forcing C.UTF-8." + export LANG=C.UTF-8 + export LC_ALL=C.UTF-8 + elif [[ ${langs} =~ en_US.UTF-8 ]]; then + yetus_error "WARNING: shellcheck needs UTF-8 locale support. Forcing en_US.UTF-8." + export LANG=en_US.UTF-8 + export LC_ALL=en_US.UTF-8 + else + for i in ${langs}; do + if [[ "${i}" =~ UTF-8 ]]; then + yetus_error "WARNING: shellcheck needs UTF-8 locale support. Forcing ${i}." + export LANG="${i}" + export LC_ALL="${i}" + break + fi + done + fi + fi + + if [[ ! "${LANG}" =~ UTF-8 ]]; then + yetus_error "WARNING: shellcheck may fail without UTF-8 locale setting." + fi } function shellcheck_private_findbash
