[arch-dev-public] [PATCH] Use a wrapper script to support different compression types

Dan McGee dan at archlinux.org
Wed Feb 24 00:26:51 EST 2010


From: Pierre Schmitz <pierre at archlinux.de>

Signed-off-by: Pierre Schmitz <pierre at archlinux.de>
---
 namcap    |   27 +++++++++++++++++++++++++++
 namcap.py |    2 +-
 pacman.py |    2 +-
 setup.py  |    2 +-
 4 files changed, 30 insertions(+), 3 deletions(-)
 create mode 100644 namcap

diff --git a/namcap b/namcap
new file mode 100644
index 0000000..f262985
--- /dev/null
+++ b/namcap
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+args=''
+tmp=$(mktemp -d /tmp/namcap.XXXXXXXXXX)
+
+for arg in "${@}"; do
+	if echo "${arg}" | grep -q -E "^.+\.pkg\.tar\..+$" && [ -f "${arg}" ]; then
+
+		case "${arg##*.}" in
+			gz|z|Z) cmd='gzip' ;;
+			bz2|bz) cmd='bzip2' ;;
+			xz)     cmd='xz' ;;
+			*)      echo 'Unsupported compression'; exit 1;;
+		esac
+
+		tar="${tmp}/$(basename "${arg%.*}")"
+		$cmd -dcf "${arg}" > "${tar}"
+
+		args="${args} ${tar}"
+	else
+		args="${args} ${arg}"
+	fi
+done
+
+python -m namcap ${args}
+
+rm -rf "${tmp}"
diff --git a/namcap.py b/namcap.py
index 19c6ceb..18dfbc8 100755
--- a/namcap.py
+++ b/namcap.py
@@ -228,7 +228,7 @@ for package in packages:
 		print "Error: Problem reading " + package
 		usage()
 
-	if package[-7:] == '.tar.gz':
+	if package[-4:] == '.tar':
 		process_realpackage(package, active_modules)
 	elif package[-8:] == 'PKGBUILD':
 		process_pkgbuild(package, active_modules)
diff --git a/pacman.py b/pacman.py
index e4b6cf3..c56d399 100644
--- a/pacman.py
+++ b/pacman.py
@@ -66,7 +66,7 @@ def load(package, root=None):
 	if root == None:
 		root = pacmandb
 	# We know it's a local package
-	if package[-7:] == '.tar.gz':
+	if package[-4:] == '.tar':
 		pkgtar = tarfile.open(package, "r")
 		if not pkgtar:
 			return None
diff --git a/setup.py b/setup.py
index 66ee2ba..754ee72 100755
--- a/setup.py
+++ b/setup.py
@@ -10,6 +10,6 @@ setup(name="namcap",
 	description="Pacman package analyzer",
 	author="Jason Chu",
 	author_email="jason at archlinux.org",
-	py_modules=["pacman"], packages=["Namcap"], scripts=["namcap.py", 'parsepkgbuild'],data_files =DATAFILES)
+	py_modules=["pacman", "namcap"], packages=["Namcap"], scripts=['parsepkgbuild', 'namcap'],data_files =DATAFILES)
 
 # vim: set ts=4 sw=4 noet:
-- 
1.7.0



More information about the arch-dev-public mailing list