From 0a31df119d9f75fa357960a0f247b2795ba71656 Mon Sep 17 00:00:00 2001 From: Glenn Washburn Date: Thu, 20 Nov 2025 12:56:47 -0600 Subject: [PATCH] bootstrap: Condense and simplify LINGUAS generation Remove unnecessary subshells. Loop over autogenerated po files only once. Use existing LINGUAS created by bootstrap instead of finding po files again. Add wget as a soft requirement now that we are using bootstrap's code for updating translation files. This should only be needed if updated translations are desired, which is the default. There should be older translation files already, and wget is not necessary if those will suffice. Signed-off-by: Glenn Washburn Reviewed-by: Daniel Kiper --- INSTALL | 1 + bootstrap.conf | 23 +++++++++++------------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/INSTALL b/INSTALL index c9bb0b888..2767fd450 100644 --- a/INSTALL +++ b/INSTALL @@ -25,6 +25,7 @@ configuring the GRUB. * Flex 2.5.35 or later * pkg-config * GNU patch +* wget (for downloading updated translations) * Other standard GNU/Unix tools * a libc with large file support (e.g. glibc 2.1 or later) diff --git a/bootstrap.conf b/bootstrap.conf index 79d4248c8..40e0b0cf4 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -113,17 +113,16 @@ bootstrap_epilogue () { # languages. autogenerated="en@quot en@hebrew de@hebrew en@cyrillic en@greek en@arabic en@piglatin de_CH" - for x in $autogenerated; do - rm -f "po/$x.po"; - done - - ( - ( - cd po && ls *.po| cut -d. -f1 - for x in $autogenerated; do - echo "$x"; - done - ) | sort | uniq | xargs - ) >po/LINGUAS + { + # NOTE: xargs has no POSIX compliant way to avoid running the program + # given as an argument when there are no input lines. So ensure that + # basename is always run with at least one argument, the empty string, + # and ignore the first line of output. + ls po/*.po | xargs -L 100 basename -s .po -a "" | tail -n +2 + for x in $autogenerated; do + rm -f "po/$x.po" + echo "$x" + done + } | sort | uniq | xargs >po/LINGUAS fi }