poelzi@107: #!/usr/bin/env lua poelzi@107: poelzi@107: OptionParser = require("utils.optparse") poelzi@107: poelzi@107: COMMANDS = {{"setpwd ", "Set a user command"}, poelzi@107: {"listuser", "List usernames"}, poelzi@107: } poelzi@107: poelzi@107: t={usage="", version="", commands=COMMANDS} poelzi@107: op=OptionParser(t) poelzi@107: --op.add_option({"-t", action="safe_true", dest="test", help=""}) poelzi@107: op.add_option({"-c", action="store", dest="config", help="config name to use", default="default"}) poelzi@107: op.add_option({"-w", action="store", dest="webmcp", help="path to webmcp", default="../webmcp"}) poelzi@107: poelzi@107: options,args = op.parse_args() poelzi@107: poelzi@107: if #args == 0 then poelzi@107: print("Error: command is required\n") poelzi@107: op.print_help() poelzi@107: return poelzi@107: end poelzi@107: poelzi@107: -- dirty dirty dirty, dirty dirty, dirty dirty dow monkey patch env poelzi@107: if not os.setenv then poelzi@107: poelzi@107: local env, getenv = { }, os.getenv poelzi@107: poelzi@107: function os.setenv(k,v) poelzi@107: env[k] = v poelzi@107: end poelzi@107: poelzi@107: function os.getenv(k) poelzi@107: return env[k] or getenv(k) poelzi@107: end poelzi@107: poelzi@107: end poelzi@107: poelzi@107: -- detect current path FIXME: platform portable poelzi@107: local PWD = io.popen("pwd"):read() poelzi@107: os.setenv("WEBMCP_APP_BASEPATH", PWD) poelzi@107: os.setenv("WEBMCP_CONFIG_NAME", options.config) poelzi@107: os.setenv("WEBMCP_INTERACTIVE", "yes") poelzi@107: poelzi@107: -- load webmcp framework poelzi@107: WEBMCP_PATH = options.webmcp .. "/framework/" poelzi@107: dofile(options.webmcp .. "/framework/cgi-bin/webmcp.lua") poelzi@107: poelzi@107: function error(why) poelzi@107: print(why) poelzi@107: os.exit(2) poelzi@107: end poelzi@107: poelzi@107: if args[1] == "setpwd" then poelzi@107: if #args < 2 then poelzi@107: error("login is required") poelzi@107: end poelzi@107: require("model.member") poelzi@107: user = Member:by_login(args[2]) poelzi@107: if not user then poelzi@107: error("User "..args[2].." not found") poelzi@107: end poelzi@107: print("Enter password:") poelzi@107: password = io.read() poelzi@107: if password then poelzi@107: user:set_password(password) poelzi@107: user:save() poelzi@107: end poelzi@107: end poelzi@107: poelzi@107: if args[1] == "listusers" then poelzi@107: require("model.member") poelzi@107: sel = Member:new_selector() poelzi@107: users = sel:exec() poelzi@107: --sel:optional_object_mode() poelzi@107: print("Login Active") poelzi@107: for i,v in pairs(users) do poelzi@107: if v.login then poelzi@107: print(v.login .. string.rep(" ", 25-#v.login), v.active) poelzi@107: end poelzi@107: end poelzi@107: end poelzi@107: poelzi@107: poelzi@107: poelzi@107: poelzi@107: