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
|