From 5e577e1737a4fd603067536b3b21d32f7d180fee Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Sun, 6 Dec 2020 18:16:00 +0000 Subject: [PATCH] mkosi: Silence locale checking in mkosi.build Avoid warning and error logs from locale charmap and export LC_CTYPE by piping to dev/null and checking if locales are available before using them. --- mkosi.build | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/mkosi.build b/mkosi.build index 113d2cdd55..f170f9b957 100755 --- a/mkosi.build +++ b/mkosi.build @@ -21,21 +21,21 @@ umask 022 # So let's ensure we're running under UTF-8. # # If our current locale already is UTF-8, then we don't need to do anything: -if [ "$(locale charmap)" != "UTF-8" ] ; then +if [ "$(locale charmap 2> /dev/null)" != "UTF-8" ] ; then # Try using C.UTF-8 locale, if available. This locale is not shipped # by upstream glibc, so it's not available in all distros. # (In particular, it's not available in Arch Linux.) - export LC_CTYPE=C.UTF-8 - if [ "$(locale charmap)" != "UTF-8" ] ; then - # Finally, try something like en_US.UTF-8, which should be - # available in Arch Linux, but is not present in Debian's - # minimal image in our mkosi config. + if locale -a | grep -q -E "C.UTF-8|C.utf8"; then + export LC_CTYPE=C.UTF-8 + # Finally, try something like en_US.UTF-8, which should be + # available in Arch Linux, but is not present in Debian's + # minimal image in our mkosi config. + elif locale -a | grep -q en_US.utf8; then export LC_CTYPE=en_US.UTF-8 - if [ "$(locale charmap)" != "UTF-8" ] ; then - # If nothing works, fail early. - echo "*** Could not find a valid locale that supports UTF-8. ***" >&2 - exit 1 - fi + else + # If nothing works, fail early. + echo "*** Could not find a valid locale that supports UTF-8. ***" >&2 + exit 1 fi fi