diff options
Diffstat (limited to 'gettext-tools/misc/convert-archive.in')
-rw-r--r-- | gettext-tools/misc/convert-archive.in | 25 |
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" ;; |