summaryrefslogtreecommitdiffstats
path: root/punani/index.py
diff options
context:
space:
mode:
authorEUcancER <root@euer.krebsco.de>2011-11-17 11:16:48 +0100
committerEUcancER <root@euer.krebsco.de>2011-11-17 11:16:48 +0100
commit3877e5d8221d42811d376ddb560552684d34f5cc (patch)
tree8a1082d200a932eb538c30ff9adf8b2f3f0463d4 /punani/index.py
parent4e8fa61ec02b6f05134e8b95239d1821a46de57c (diff)
//punani: rm old punani, tightnani->punani
Diffstat (limited to 'punani/index.py')
-rwxr-xr-xpunani/index.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/punani/index.py b/punani/index.py
new file mode 100755
index 00000000..4e6a64a4
--- /dev/null
+++ b/punani/index.py
@@ -0,0 +1,58 @@
+#!/usr/bin/python
+
+import web
+import json
+
+urls = (
+ '/', 'Index',
+ '/dump','Dump',
+ '/reload','Reload',
+ '/(.+)/(.+)', 'ArchFinder',
+)
+
+
+PDB_FILE="tightnani_db"
+f = open(PDB_FILE)
+pdb= json.load(f)
+f.close()
+
+class Index:
+ def GET(self):
+ ret = """Welcome to the Tightnani API<br/>
+Retrieve a package name for your distribution with: /PACKER/PKG"""
+ return ret
+
+class Reload:
+ def GET(self):
+ f = open(PDB_FILE)
+ pdb= json.load(f)
+ f.close()
+ return "DB reloaded"
+
+
+class Dump:
+ def GET(self):
+ return json.dumps(pdb,sort_keys=True,indent=4)
+
+class ArchFinder:
+ def GET(self,packer,package):
+ if not packer or not package: web.BadRequest()
+ else:
+ packer = pdb['packer-symlinks'].get(packer,packer) #try to resolve similar packers
+ super_packer = pdb['super-packer'].get(packer,'')
+ ret = pdb.get(package,{}).get(packer,False)
+ ret = ret if ret else pdb.get(package,{}).get(super_packer,False)
+
+ if not ret:
+ web.NotFound()
+ return "not found. i'm so sorry :("
+ else: return ret
+
+
+
+if __name__ == "__main__":
+ import sys
+ sys.argv.append("9111")
+ app = web.application(urls,globals())
+ app.internalerror = web.debugerror
+ app.run()