diff options
author | Lennart Poettering <lennart@poettering.net> | 2005-11-22 01:09:26 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2005-11-22 01:09:26 +0000 |
commit | d8d9dfa0bc29030766afe611d64a0fc5cabe0c6b (patch) | |
tree | a8f4ef008febce7d66eb2c152078f1e1177b5ebe /feed/sse_tar.py | |
parent | 84b8366e5b3027ccd74622b7e6a271f5c7a641fa (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-x | feed/sse_tar.py | 70 |
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]) - - + |