summaryrefslogtreecommitdiffstats
path: root/functions
diff options
context:
space:
mode:
authorOtavio Salvador <otavio@debian.org>2009-11-17 12:24:21 (GMT)
committerOtavio Salvador <otavio@debian.org>2009-11-17 12:24:21 (GMT)
commitd48c8e453ae75ee19b7a1a4a14c899209eac083e (patch)
tree82dae03a77f0241ef32b48821e8b5348e493b5d3 /functions
parent9b211870ed35fcb9ec64812b28b2ca0220700807 (diff)
downloaddebootstrap-d48c8e453ae75ee19b7a1a4a14c899209eac083e.zip
debootstrap-d48c8e453ae75ee19b7a1a4a14c899209eac083e.tar.gz
debootstrap-d48c8e453ae75ee19b7a1a4a14c899209eac083e.tar.bz2
Properly inform the user if the required uncompress command is not found on the system
r61340
Diffstat (limited to 'functions')
-rw-r--r--functions14
1 files changed, 10 insertions, 4 deletions
diff --git a/functions b/functions
index 1427274..e832d70 100644
--- a/functions
+++ b/functions
@@ -719,7 +719,7 @@ get_debs () {
extract () { (
cd "$TARGET"
- local p=0 tarball
+ local p=0 tarball cat_cmd
for pkg in $(debfor "$@"); do
p="$(($p + 1))"
progress "$p" "$#" EXTRACTPKGS "Extracting packages"
@@ -727,11 +727,17 @@ extract () { (
info EXTRACTING "Extracting %s..." "$packagename"
tarball=$(ar -t "./$pkg" | grep "^data.tar.[bgx]z")
case "$tarball" in
- data.tar.gz) ar -p "./$pkg" data.tar.gz | zcat | tar -xf - ;;
- data.tar.bz2) ar -p "./$pkg" data.tar.bz2 | bzcat | tar -xf - ;;
- data.tar.xz) ar -p "./$pkg" data.tar.xz | xzcat | tar -xf - ;;
+ data.tar.gz) cat_cmd=zcat ;;
+ data.tar.bz2) cat_cmd=bzcat ;;
+ data.tar.xz) cat_cmd=xzcat ;;
*) error 1 UNKNOWNDATACOMP "Unknown compression type for %s in %s" "$tarball" "$pkg" ;;
esac
+
+ if type $cat_cmd >/dev/null 2>&1; then
+ ar -p "./$pkg" data.tar.gz | $cat_cmd | tar -xf -
+ else
+ error 1 UNPACKCMDUNVL "The $cat_cmd is not available on the system"
+ fi
done
); }