class IPKGResource(resource.Resource):
IPKG_PATH = "/usr/bin/ipkg"
- SIMPLECMDS = [ "list", "list_installed", "update", "upgrade" ]
- PACKAGECMDS = [ "info", "status", "install", "remove" ]
- FILECMDS = [ "search" ]
-
- def __init__(self):
- resource.Resource.__init__(self)
-
+ SIMPLECMDS = ( "list", "list_installed", "update", "upgrade" )
+ PACKAGECMDS = ( "info", "status", "install", "remove" )
+ FILECMDS = ( "search" )
+
def render(self, request):
self.args = request.args
self.command = self.getArg("command")
def execCmd(self, request, parms=[]):
cmd = self.buildCmd(parms)
-
+
request.setResponseCode(http.OK)
IPKGConsoleStream(request, cmd)
-
+
+ return server.NOT_DONE_YET
def execSimpleCmd(self, request):
return self.execCmd(request)
def execPackageCmd(self, request):
package = self.getArg("package")
if package is not None:
- self.execCmd(request, [package])
+ return self.execCmd(request, [package])
else:
- self.doErrorPage(request, "Missing parameter: package")
+ return self.doErrorPage(request, "Missing parameter: package")
def execFileCmd(self, request):
file = self.getArg("file")
html += "list_installed, ?command=list_installed<br>"
html += "list, ?command=list<br>"
html += "search, ?command=search&file=<filename><br>"
- html += "info, ?command=search&package=<packagename><br>"
- html += "status, ?command=search&package=<packagename><br>"
+ html += "info, ?command=info&package=<packagename><br>"
+ html += "status, ?command=status&package=<packagename><br>"
html += "install, ?command=install&package=<packagename><br>"
html += "remove, ?command=remove&package=<packagename><br>"
html += "</body></html>"
-
+
request.setResponseCode(http.OK)
request.write(html)
request.finish()
-
+
return server.NOT_DONE_YET
-
def doErrorPage(self, request, errormsg):
request.setResponseCode(http.OK)
request.write(errormsg)
- request.finish()
-
+ request.finish()
+
return server.NOT_DONE_YET
-
+
def getArg(self, key):
if self.args.has_key(key):
return self.args[key][0]
class IPKGConsoleStream:
def __init__(self, request, cmd):
self.request = request
-
+
self.container = eConsoleAppContainer()
self.container.dataAvail.append(self.dataAvail)
def cmdFinished(self, data):
self.request.finish()
-
- return server.NOT_DONE_YET
def dataAvail(self, data):
self.request.write(data)