summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--opkg.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/opkg.py b/opkg.py
index 2ecac8a..4d6f020 100644
--- a/opkg.py
+++ b/opkg.py
@@ -164,8 +164,12 @@ class Package(object):
## sys.stderr.write(" extracting control.tar.gz from %s\n"% (fn,))
- ar = arfile.ArFile(f, fn)
- tarStream = ar.open("control.tar.gz")
+ if tarfile.is_tarfile(fn):
+ tar = tarfile.open(fn, "r", f)
+ tarStream = tar.extractfile("./control.tar.gz")
+ else:
+ ar = ArFile(f, fn)
+ tarStream = ar.open("control.tar.gz")
tarf = tarfile.open("control.tar.gz", "r", tarStream)
try:
control = tarf.extractfile("control")