commit:     2f21153a85d43ea466a3289a833f35f1049314cf
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 24 00:25:07 2020 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Wed Jun 24 00:33:00 2020 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=2f21153a

ecompress: fix "Argument list too long" for sed (bug 727522)

Use sed -f to feed commands to sed via stdin, in order to avoid
the "Argument list too long" error reported in bug 727522.

Fixes: 5508bf7a6db5 ("ecompress: ignore docompress -x files in precompressed QA 
check (bug 721516)")
Bug: https://bugs.gentoo.org/727522
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 bin/ecompress | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/bin/ecompress b/bin/ecompress
index 7aabc8e4c..1ab07ccd7 100755
--- a/bin/ecompress
+++ b/bin/ecompress
@@ -38,9 +38,10 @@ while [[ $# -gt 0 ]] ; do
                if [[ ${#skip_files[@]} -gt 0 && -s 
${T}/.ecompress_had_precompressed ]]; then
                        sed_args=()
                        for f in "${skip_files[@]}"; do
-                               sed_args+=(-e "s|^${f}\$||")
+                               sed_args+=("s|^${f}\$||;")
                        done
-                       sed "${sed_args[@]}" -e '/^$/d' -i 
"${T}/.ecompress_had_precompressed" || die
+                       sed_args+=('/^$/d')
+                       sed -f - -i "${T}/.ecompress_had_precompressed" <<< 
"${sed_args[@]}" || die
                fi
 
                exit 0

Reply via email to