summaryrefslogtreecommitdiffstats
path: root/gettext-tools/misc/convert-archive.in
diff options
context:
space:
mode:
Diffstat (limited to 'gettext-tools/misc/convert-archive.in')
-rw-r--r--gettext-tools/misc/convert-archive.in25
1 files changed, 19 insertions, 6 deletions
diff --git a/gettext-tools/misc/convert-archive.in b/gettext-tools/misc/convert-archive.in
index f874781..0088576 100644
--- a/gettext-tools/misc/convert-archive.in
+++ b/gettext-tools/misc/convert-archive.in
@@ -17,8 +17,8 @@
#
# Usage: convert-archive FROM TO [FROMFILE [TOFILE]]
-# where FROM is dir or cvs or git
-# and TO is dir or cvs or git
+# where FROM is dir or dirgz or dirbz2 or dirxz or cvs or git
+# and TO is dir or dirgz or dirbz2 or dirxz or cvs or git
# This will read FROMFILE (default: archive.$FROM.tar.gz)
# and produce TOFILE (default: archive.$TO.tar.gz).
@@ -89,8 +89,15 @@ mkdir "$unpacked" || {
# Unpack the original archive.
case "$from" in
- dir)
- gzip -d -c < "$fromfile" | (cd "$unpacked" && tar xf -) \
+ dir*)
+ { case "$from" in
+ dir) cat < "$fromfile" ;;
+ dirgz) gzip -d -c < "$fromfile" ;;
+ dirbz2) bzip2 -d -c < "$fromfile" ;;
+ dirxz) xz -d -c < "$fromfile" ;;
+ esac
+ } \
+ | (cd "$unpacked" && tar xf -) \
|| func_fatal_error "file copy failed"
;;
@@ -234,9 +241,15 @@ done
# Create the target archive.
case "$to" in
- dir)
+ dir*)
(cd "$unpacked" && $TAR cf - $TAR_OPTIONS *) \
- | gzip -c -9 > "$tofile" \
+ | { case "$to" in
+ dir) cat > "$tofile" ;;
+ dirgz) gzip -c -9 > "$tofile" ;;
+ dirbz2) bzip2 -c -9 > "$tofile" ;;
+ dirxz) xz -c -5 > "$tofile" ;;
+ esac
+ } \
|| func_fatal_error "archive creation failed"
;;