diff options
author | Lennart Poettering <lennart@poettering.net> | 2005-11-21 16:38:21 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2005-11-21 16:38:21 +0000 |
commit | 118623476f8609c40425d751f56e44d720e3d6ff (patch) | |
tree | 020b1bd990a759aa9c7628d5fe900bd8effd5ddd /feed | |
parent | 19d4ce7963f602404578729563639ae4699c304f (diff) |
add new sse-tar2 utility
git-svn-id: file:///home/lennart/svn/public/sse/trunk@11 5fbabb74-0606-0410-a5e4-b5cc6a42724e
Diffstat (limited to 'feed')
-rw-r--r-- | feed/sse-config.py | 5 | ||||
-rwxr-xr-x | feed/sse-fm | 5 | ||||
-rwxr-xr-x | feed/sse-tar2 | 66 | ||||
-rwxr-xr-x | feed/sse_feed (renamed from feed/sse-feed) | 31 |
4 files changed, 95 insertions, 12 deletions
diff --git a/feed/sse-config.py b/feed/sse-config.py new file mode 100644 index 0000000..40d631f --- /dev/null +++ b/feed/sse-config.py @@ -0,0 +1,5 @@ + +import os + +HOME = os.environ["HOME"] +SSE_DIR = "/home/lennart/sse/feed" diff --git a/feed/sse-fm b/feed/sse-fm index f9fae44..dd45d58 100755 --- a/feed/sse-fm +++ b/feed/sse-fm @@ -1,10 +1,11 @@ #!/usr/bin/python + import sys, urllib2, os, socket from xml.sax import ContentHandler, make_parser +from sse-config import * -HOME = os.environ["HOME"] -SSE_TAR = HOME + "/bin/sse-tar" +SSE_TAR = SSE_DIR + "sse-tar" def process_tar(project, tar): print "New tar %s" % tar diff --git a/feed/sse-tar2 b/feed/sse-tar2 new file mode 100755 index 0000000..79671f6 --- /dev/null +++ b/feed/sse-tar2 @@ -0,0 +1,66 @@ +#!/usr/bin/python + +import tarfile, zipfile, sys, os +import sse_feed + +def archive_uncompress(archive, root, meta = {}): + + f = tarfile.open(archive, "r") + + while True: + + i = f.next() + + if i is None: + break + + if not i.isreg(): + continue + + if not sse_feed.supported_source(i.name): + continue + + dst = os.path.join(root, i.name) + f.extract(i, dst) + os.utime(dst, (i.mtime, i.mtime)) + + sse_feed.process_source(archive, root, i.name, meta) + + del f + +def calc_md(fn): + m = md5.new() + f = fopen(fn) + + while True: + data = m.read(1024) + + if len(data) <= 0: + break + + m.update(data) + + del f + + return m.hexdigest() + + +def process_archive(archive, meta = {}): + + md = calc_md(archive) + root = os.path.join(HOME, "sources", md) + + try: + os.mkdir(root) + except: + pass + + meta["md"] = md + + archive_uncompress(archive, root, meta) + +if __name__ == "__main__": + + archive_uncompress(sys.argv[1]) + + diff --git a/feed/sse-feed b/feed/sse_feed index 29718ca..c6f0de9 100755 --- a/feed/sse-feed +++ b/feed/sse_feed @@ -3,6 +3,16 @@ import sys, os, MySQLdb, stat from popen2 import Popen3 +supported = [".c", ".h"] + +def supported_source(fn): + + for e in supported: + if fn.endswith(e): + return True + + return False + def last_insert_id(cursor): cursor.execute("SELECT LAST_INSERT_ID()"); return cursor.fetchone()[0] @@ -55,16 +65,17 @@ def handle_tree(path, name, url, md): assert path + "/" == (dirpath + "/") [:len(path)+1] handle_file(package_id, path, dirpath[len(path)+1:], f) - -db = MySQLdb.connect(host = "localhost", user = "sse_web", passwd = "ece6Yoli", db = "sse") -cursor = db.cursor(); -cursor.execute("SET AUTOCOMMIT=0") -cursor.execute("START TRANSACTION") -assert len(sys.argv) == 5 +if __name__ == "__main__": + db = MySQLdb.connect(host = "localhost", user = "sse_web", passwd = "ece6Yoli", db = "sse") + cursor = db.cursor(); + cursor.execute("SET AUTOCOMMIT=0") + cursor.execute("START TRANSACTION") + + assert len(sys.argv) == 5 -handle_tree(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4]) + handle_tree(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4]) -cursor.execute("COMMIT") -cursor.close() -db.close() + cursor.execute("COMMIT") + cursor.close() + db.close() |