Sun, 30 May 2010 02:56:40 +0100
clix.lua: Hook Verse's new 'ready' event instead of 'binding-success' and switch to 'bind-failure' for hooking resource bind failures
6 | 1 | # clix - Command-line XMPP tool |
2 | ||
3 | ## Description | |
4 | Clix is a small utility to interact with an XMPP server. It can be | |
5 | used to send messages, presence, and info queries to any XMPP address. | |
6 | ||
7 | ## Example | |
30
2323adeb8c7c
README: Rename 'message' command to 'send' in the example
Matthew Wild <mwild1@gmail.com>
parents:
10
diff
changeset
|
8 | clix send --to=user@example.com "The kettle has now boiled" |
6 | 9 | |
10 | ## Usage | |
11 | Syntax: clix COMMAND [OPTIONS] [...] | |
12 | ||
13 | Different commands accept different sets of options, but they all | |
14 | follow some general conventions. The command must be the first | |
15 | parameter, followed by a series of flags or options. Global options | |
16 | include: | |
17 | ||
18 | --account=default | |
19 | The account to use from the configuration file (default | |
20 | is 'default') | |
21 | ||
31
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
22 | -c |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
23 | --chatroom[=chatroom address] |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
24 | Join a chatroom, if no address is specified then the value |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
25 | of the --to parameter is used. |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
26 | |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
27 | --nick=nickname |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
28 | The nickname to use if clix joins a chatroom, default "clix" |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
29 | |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
30 | -o |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
31 | --presence |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
32 | Send presence, that is - appear online to contacts. |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
33 | |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
34 | -p |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
35 | --password=password |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
36 | Set the password to use for authentication (overrides config) |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
37 | |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
38 | -r |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
39 | --resource=resource |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
40 | Set the resource to use (default is to let the server choose) |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
41 | |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
42 | -q |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
43 | --quiet |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
44 | Suppress informational messages |
7f649b0ba94d
README: Add description of options common to all commands
Matthew Wild <mwild1@gmail.com>
parents:
30
diff
changeset
|
45 | |
6 | 46 | -v |
47 | --verbose | |
48 | Enables verbose logging of the XMPP connection | |
49 | ||
50 | When no command is specified, clix will print a list of the names | |
51 | and descriptions of all built-in commands. | |
52 | ||
10
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
53 | ## Configuration |
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
54 | Clix looks for its config file at $HOME/.clix - it is a simple 'ini' |
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
55 | format, which looks like this: |
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
56 | |
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
57 | [default] |
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
58 | jid=user@example.com |
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
59 | password=mypassword |
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
60 | |
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
61 | [otheraccount] |
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
62 | jid=otheruser@example.org |
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
63 | password=theirpassword |
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
64 | |
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
65 | and so on. You can define as many accounts as you want, if no account |
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
66 | is called 'default' then the first account is the default. If there is |
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
67 | no [] header at the start of the file it is assumed to be [default]. |
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
68 | |
6 | 69 | ## Building and installing |
70 | Building clix is (by no accident) quite simple. It depends on Verse, | |
71 | an XMPP client library for Lua. Verse in turn depends on several | |
72 | libraries, all dependencies are listed here. | |
73 | ||
74 | Verse 2.0+: http://matthewwild.co.uk/projects/verse | |
75 | At the time of writing Verse 2.x has not been released yet and | |
76 | is available only from: http://code.matthewwild.co.uk/verse/ | |
77 | ||
78 | LuaExpat: http://www.keplerproject.org/luaexpat/ | |
79 | Lua XML parser. Available in Debian as liblua5.1-expat0 | |
80 | ||
81 | LuaSocket: http://www.tecgraf.puc-rio.br/~diego/professional/luasocket/ | |
82 | Lua networking library. Available in Debian as liblua5.1-socket2 | |
83 | ||
84 | Clix can be run directly from source if the above dependencies are | |
85 | installed. To make life easier it can be installed to standard directories, | |
86 | on most systems this means to copy clix.lua to /usr/bin/clix and the clix | |
87 | directory to /usr/lib/lua/5.1/clix (on some non-Debian systems the 5.1 | |
88 | directory isn't needed). | |
89 | ||
90 | Alternatively you can use Squish to compress all Clix's files into a single | |
91 | executable. If you have Squish installed then simply type 'squish' in | |
92 | clix's source directory to generate the compacted 'clix.bin' file. Squish | |
93 | can be found at http://matthewwild.co.uk/projects/squish . | |
94 |