aboutsummaryrefslogtreecommitdiff
path: root/deb2tgz
blob: bb7b3d0592ac246cae849046b10d51bef1e0b7a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/sh

INPUT="$1"

if [ -z "$INPUT" -o "$INPUT" = "--help" ]; then
	echo "deb2tgz by B. Watson <yalhcru@gmail.com>, WTFPL"
	echo "Usage: `basename $0` filename.deb"
	exit 0
fi

OUTPUT="`basename $1 .deb`.tgz"

# 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

ar p "$INPUT" "$DATA" > $OUTPUT