diff options
Diffstat (limited to 'deb2tarball')
-rwxr-xr-x | deb2tarball | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/deb2tarball b/deb2tarball new file mode 100755 index 0000000..145f58d --- /dev/null +++ b/deb2tarball @@ -0,0 +1,26 @@ +#!/bin/sh + +INPUT="$1" + +if [ -z "$INPUT" -o "$INPUT" = "--help" ]; then + echo "deb2tarball by B. Watson <yalhcru@gmail.com>, WTFPL" + echo "Usage: `basename $0` filename.deb" + exit 0 +fi + +# used to always be data.tar.gz, newer debs might have data.tar.xz, +# so we have to check. ar doesn't support wildcards like tar does, so +# we can't just say "data.tar.*". + +DATA="$( ar t "$INPUT" 2>/dev/null | grep '^data\.tar\.' )" + +if [ -z "$DATA" ]; then + echo "Can't find any data.tar.* file(s) in the archive, invalid deb?" 2>&1 + exit 1 +fi + +EXT="$( echo $DATA | cut -d. -f2- )" +OUTPUT="`basename $1 .deb`".$EXT + +echo "$OUTPUT" +ar p "$INPUT" "$DATA" > "$OUTPUT" |