liquid_feedback_frontend
annotate bin/liquid-admin.lua @ 139:bc2570b97c09
fix spelling
fixed bug #330
fixed bug #330
| author | Daniel Poelzleithner <poelzi@poelzi.org> | 
|---|---|
| date | Wed Oct 06 13:52:23 2010 +0200 (2010-10-06) | 
| parents | eeb167cf9dc4 | 
| children | 
| rev | line source | 
|---|---|
| poelzi@107 | 1 #!/usr/bin/env lua | 
| poelzi@107 | 2 | 
| poelzi@107 | 3 OptionParser = require("utils.optparse") | 
| poelzi@107 | 4 | 
| poelzi@107 | 5 COMMANDS = {{"setpwd <username> <password>", "Set a user command"}, | 
| poelzi@107 | 6 {"listuser", "List usernames"}, | 
| poelzi@107 | 7 } | 
| poelzi@107 | 8 | 
| poelzi@107 | 9 t={usage="<some usage message>", version="<version string>", commands=COMMANDS} | 
| poelzi@107 | 10 op=OptionParser(t) | 
| poelzi@107 | 11 --op.add_option({"-t", action="safe_true", dest="test", help="<help message for this option>"}) | 
| poelzi@107 | 12 op.add_option({"-c", action="store", dest="config", help="config name to use", default="default"}) | 
| poelzi@107 | 13 op.add_option({"-w", action="store", dest="webmcp", help="path to webmcp", default="../webmcp"}) | 
| poelzi@107 | 14 | 
| poelzi@107 | 15 options,args = op.parse_args() | 
| poelzi@107 | 16 | 
| poelzi@107 | 17 if #args == 0 then | 
| poelzi@107 | 18 print("Error: command is required\n") | 
| poelzi@107 | 19 op.print_help() | 
| poelzi@107 | 20 return | 
| poelzi@107 | 21 end | 
| poelzi@107 | 22 | 
| poelzi@107 | 23 -- dirty dirty dirty, dirty dirty, dirty dirty dow monkey patch env | 
| poelzi@107 | 24 if not os.setenv then | 
| poelzi@107 | 25 | 
| poelzi@107 | 26 local env, getenv = { }, os.getenv | 
| poelzi@107 | 27 | 
| poelzi@107 | 28 function os.setenv(k,v) | 
| poelzi@107 | 29 env[k] = v | 
| poelzi@107 | 30 end | 
| poelzi@107 | 31 | 
| poelzi@107 | 32 function os.getenv(k) | 
| poelzi@107 | 33 return env[k] or getenv(k) | 
| poelzi@107 | 34 end | 
| poelzi@107 | 35 | 
| poelzi@107 | 36 end | 
| poelzi@107 | 37 | 
| poelzi@107 | 38 -- detect current path FIXME: platform portable | 
| poelzi@107 | 39 local PWD = io.popen("pwd"):read() | 
| poelzi@107 | 40 os.setenv("WEBMCP_APP_BASEPATH", PWD) | 
| poelzi@107 | 41 os.setenv("WEBMCP_CONFIG_NAME", options.config) | 
| poelzi@107 | 42 os.setenv("WEBMCP_INTERACTIVE", "yes") | 
| poelzi@107 | 43 | 
| poelzi@107 | 44 -- load webmcp framework | 
| poelzi@107 | 45 WEBMCP_PATH = options.webmcp .. "/framework/" | 
| poelzi@107 | 46 dofile(options.webmcp .. "/framework/cgi-bin/webmcp.lua") | 
| poelzi@107 | 47 | 
| poelzi@107 | 48 function error(why) | 
| poelzi@107 | 49 print(why) | 
| poelzi@107 | 50 os.exit(2) | 
| poelzi@107 | 51 end | 
| poelzi@107 | 52 | 
| poelzi@107 | 53 if args[1] == "setpwd" then | 
| poelzi@107 | 54 if #args < 2 then | 
| poelzi@107 | 55 error("login is required") | 
| poelzi@107 | 56 end | 
| poelzi@107 | 57 require("model.member") | 
| poelzi@107 | 58 user = Member:by_login(args[2]) | 
| poelzi@107 | 59 if not user then | 
| poelzi@107 | 60 error("User "..args[2].." not found") | 
| poelzi@107 | 61 end | 
| poelzi@107 | 62 print("Enter password:") | 
| poelzi@107 | 63 password = io.read() | 
| poelzi@107 | 64 if password then | 
| poelzi@107 | 65 user:set_password(password) | 
| poelzi@107 | 66 user:save() | 
| poelzi@107 | 67 end | 
| poelzi@107 | 68 end | 
| poelzi@107 | 69 | 
| poelzi@107 | 70 if args[1] == "listusers" then | 
| poelzi@107 | 71 require("model.member") | 
| poelzi@107 | 72 sel = Member:new_selector() | 
| poelzi@107 | 73 users = sel:exec() | 
| poelzi@107 | 74 --sel:optional_object_mode() | 
| poelzi@107 | 75 print("Login Active") | 
| poelzi@107 | 76 for i,v in pairs(users) do | 
| poelzi@107 | 77 if v.login then | 
| poelzi@107 | 78 print(v.login .. string.rep(" ", 25-#v.login), v.active) | 
| poelzi@107 | 79 end | 
| poelzi@107 | 80 end | 
| poelzi@107 | 81 end | 
| poelzi@107 | 82 | 
| poelzi@107 | 83 | 
| poelzi@107 | 84 | 
| poelzi@107 | 85 | 
| poelzi@107 | 86 |