summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2010-04-13 19:47:34 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2010-04-13 19:47:34 (GMT)
commite87fb32624c41df5a1dd6a8a598d54c62c4724c3 (patch)
treed6a4e5c757d4a8e453bfc07997a49e1a6b5867ff /scripts
parent2d54ce4a2cd750c508226a9055414818d45e052d (diff)
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')
-rw-r--r--scripts/functions20
1 files changed, 12 insertions, 8 deletions
diff --git a/scripts/functions b/scripts/functions
index b323d47..797e5bf 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