summaryrefslogtreecommitdiffstats
path: root/feed/sse_tar.py
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2005-11-22 01:09:26 +0000
committerLennart Poettering <lennart@poettering.net>2005-11-22 01:09:26 +0000
commitd8d9dfa0bc29030766afe611d64a0fc5cabe0c6b (patch)
treea8f4ef008febce7d66eb2c152078f1e1177b5ebe /feed/sse_tar.py
parent84b8366e5b3027ccd74622b7e6a271f5c7a641fa (diff)
add debian feeder
git-svn-id: file:///home/lennart/svn/public/sse/trunk@20 5fbabb74-0606-0410-a5e4-b5cc6a42724e
Diffstat (limited to 'feed/sse_tar.py')
-rwxr-xr-xfeed/sse_tar.py70
1 files changed, 36 insertions, 34 deletions
diff --git a/feed/sse_tar.py b/feed/sse_tar.py
index bb01987..ea94ca4 100755
--- a/feed/sse_tar.py
+++ b/feed/sse_tar.py
@@ -112,57 +112,59 @@ def rm_rf(root):
os.rmdir(root)
-
def process_archive(archive, meta = {}, recid = None, provider_id = SSE_PROVIDER_NONE):
if recid is None:
recid = archive
md = calc_md(archive)
- root = os.path.join(HOME, "sources", md)
-
- try:
- rm_rf(root)
- except:
- pass
- os.makedirs(root)
-
meta["md"] = md
sse_db.start_transaction()
- package_id = sse_db.find_package(md)
+ try:
+ package_id = sse_db.find_package(md)
+
+ if not package_id is None:
+ print "Package '%s' already in database." % recid
- if package_id is None:
- package_id = sse_db.new_package(archive, root, meta)
+ if not recid is None:
+ # Update provider record
+ sse_db.new_provider_record(recid, package_id, provider_id, meta)
+
+ else:
+ package_id = sse_db.new_package(archive, root, meta)
- print "Package '%s' is new in database." % recid
+ print "Package '%s' is new in database." % recid
- if not recid is None:
- sse_db.new_provider_record(recid, package_id, provider_id, meta)
-
- try:
- n = uncompress_tar(archive, root, package_id, meta)
- except tarfile.TarError:
- try:
- n = uncompress_zip(archive, root, package_id, meta)
- except zipfile.error:
- n = None
- print "Unknown file format."
+ if not recid is None:
+ sse_db.new_provider_record(recid, package_id, provider_id, meta)
- if not n is None:
- print "Successfully processed %i files." % n
-
- else:
+ root = os.path.join(HOME, "sources", md)
+
+ try:
+ rm_rf(root)
+ except:
+ pass
+ os.makedirs(root)
- print "Package '%s' already in database." % recid
+ try:
+ n = uncompress_tar(archive, root, package_id, meta)
+ except tarfile.TarError:
+ try:
+ n = uncompress_zip(archive, root, package_id, meta)
+ except zipfile.error:
+ n = -1
+ print "Unknown file format."
+
+ if n >= 0:
+ print "Successfully processed %i files." % n
- if not recid is None:
- sse_db.new_provider_record(recid, package_id, provider_id, meta)
+ sse_db.commit()
- sse_db.commit()
+ except Exception, e:
+ sse_db.rollback()
if __name__ == "__main__":
process_archive(sys.argv[1])
-
-
+