author | Myhailo Danylenko <isbear@ukrpost.net> |
Sat, 28 Mar 2009 19:43:12 +0200 | |
changeset 67 | d33ca5572e91 |
permissions | -rw-r--r-- |
67
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
1 |
|
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
2 |
local lm = require 'lm' |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
3 |
local remote = require 'remote' |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
4 |
|
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
5 |
main.command ( 'remote', |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
6 |
function ( args ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
7 |
local who |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
8 |
if args.t then |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
9 |
who = args.t |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
10 |
else |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
11 |
who = main.full_jid () |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
12 |
end |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
13 |
local action = args[1] |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
14 |
local conn = lm.connection.bless ( main.connection () ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
15 |
if action then |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
16 |
remote.command ( conn, who, action, |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
17 |
function ( form, submit, reject ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
18 |
if not form then |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
19 |
main.print_info ( who, ('Command %s completed'):format ( action ) ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
20 |
else |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
21 |
insert_form ( form, -- XXX |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
22 |
function ( form ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
23 |
submit ( form, |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
24 |
function () |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
25 |
main.print_info ( who, ('Command %s completed'):format ( action ) ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
26 |
end, |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
27 |
function ( mesg ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
28 |
main.print_info ( who, ('Command %s execution failed: %s'):format ( action, mesg ) ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
29 |
end ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
30 |
end, |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
31 |
function ( form ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
32 |
reject ( form, |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
33 |
function () |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
34 |
main.print_info ( who, ('Command %s execution cancelled'):format ( action ) ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
35 |
end, |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
36 |
function ( mesg ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
37 |
main.print_info ( who, ('Command %s execution cancellation failed: %s'):format ( action, mesg ) ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
38 |
end ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
39 |
end ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
40 |
end |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
41 |
end, |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
42 |
function ( mesg ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
43 |
main.print_info ( who, ('Command %s execution failed: %s'):format ( action, mesg ) ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
44 |
end ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
45 |
else |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
46 |
remote.list ( conn, who, |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
47 |
function ( items ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
48 |
local text = '' |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
49 |
for index, item in ipairs ( items ) do |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
50 |
text = text .. '\n - ' .. item.node |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
51 |
end |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
52 |
if text ~= '' then |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
53 |
main.print_info ( who, 'Available commands:' .. text ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
54 |
else |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
55 |
main.print_info ( who, 'No commands available.' ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
56 |
end |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
57 |
end, |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
58 |
function ( mesg ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
59 |
main.print_info ( who, ("Remote commands list for %s failed: %s"):format ( who, mesg ) ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
60 |
end ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
61 |
end |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
62 |
end, true, 'jid' ) |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
63 |
|
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
64 |
commands_help['remote'] = "[-t target_jid] [remote_command]\n\nPrints list of available remote command or requests execution of specified command." |
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
65 |
|
d33ca5572e91
Fully object forms interface (untested)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
66 |
-- vim: se ts=4: -- |