summaryrefslogtreecommitdiffstats
path: root/feed
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2005-11-21 16:38:21 +0000
committerLennart Poettering <lennart@poettering.net>2005-11-21 16:38:21 +0000
commit118623476f8609c40425d751f56e44d720e3d6ff (patch)
tree020b1bd990a759aa9c7628d5fe900bd8effd5ddd /feed
parent19d4ce7963f602404578729563639ae4699c304f (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.py5
-rwxr-xr-xfeed/sse-fm5
-rwxr-xr-xfeed/sse-tar266
-rwxr-xr-xfeed/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()