diff options
author | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2010-04-13 21:47:34 +0200 |
---|---|---|
committer | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2010-04-13 21:47:34 +0200 |
commit | e87fb32624c41df5a1dd6a8a598d54c62c4724c3 (patch) | |
tree | d6a4e5c757d4a8e453bfc07997a49e1a6b5867ff /scripts/functions | |
parent | 2d54ce4a2cd750c508226a9055414818d45e052d (diff) | |
download | crosstool-ng-e87fb32624c41df5a1dd6a8a598d54c62c4724c3.tar.gz crosstool-ng-e87fb32624c41df5a1dd6a8a598d54c62c4724c3.tar.bz2 crosstool-ng-e87fb32624c41df5a1dd6a8a598d54c62c4724c3.zip |
scripts/functions: compress with gzip level 3, as stated in the documentation
Thanks to Bruno Tarquini <btarquini@gmail.com> for the report.
Diffstat (limited to 'scripts/functions')
-rw-r--r-- | scripts/functions | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/scripts/functions b/scripts/functions index b323d477..797e5bfa 100644 --- a/scripts/functions +++ b/scripts/functions @@ -917,16 +917,18 @@ CT_DoTarballIfExists() { local tarball="$2" shift 2 local -a extra_tar_opts=( "$@" ) - local tar_opt + local -a compress case "${CT_DEBUG_CT_SAVE_STEPS_GZIP}" in - y) tar_opt=-z; tar_ext=.gz;; - *) tar_opt=; tar_ext=;; + y) compress=( gzip -c -3 - ); tar_ext=.gz;; + *) compress=( cat - ); tar_ext=;; esac if [ -d "${dir}" ]; then CT_DoLog DEBUG " Saving '${dir}'" - CT_DoExecLog DEBUG tar c -C "${dir}" -v ${tar_opt} -f "${tarball}.tar${tar_ext}" "${extra_tar_opts[@]}" . + { tar c -C "${dir}" -v -f - "${extra_tar_opts[@]}" . \ + |"${compress[@]}" >"${tarball}.tar${tar_ext}" ; + } 2>&1 |sed -r -e 's/^/ /;' |CT_DoLog DEBUG else CT_DoLog DEBUG " Not saving '${dir}': does not exist" fi @@ -940,18 +942,20 @@ CT_DoExtractTarballIfExists() { local dir="$2" shift 2 local -a extra_tar_opts=( "$@" ) - local tar_opt + local -a uncompress case "${CT_DEBUG_CT_SAVE_STEPS_GZIP}" in - y) tar_opt=-z; tar_ext=.gz;; - *) tar_opt=; tar_ext=;; + y) uncompress=( gzip -c -d ); tar_ext=.gz;; + *) uncompress=( cat ); tar_ext=;; esac if [ -f "${tarball}.tar${tar_ext}" ]; then CT_DoLog DEBUG " Restoring '${dir}'" CT_DoForceRmdir "${dir}" CT_DoExecLog DEBUG mkdir -p "${dir}" - CT_DoExecLog DEBUG tar x -C "${dir}" -v ${tar_opt} -f "${tarball}.tar${tar_ext}" "${extra_tar_opts[@]}" + { "${uncompress[@]}" "${tarball}.tar${tar_ext}" \ + |tar x -C "${dir}" -v -f - "${extra_tar_opts[@]}" ; + } 2>&1 |sed -r -e 's/^/ /;' |CT_DoLog DEBUG else CT_DoLog DEBUG " Not restoring '${dir}': does not exist" fi |