Software / code / clix
Annotate
README @ 131:58d485001448
clix: Use tabs for indentation in command line parsing
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 14 Nov 2020 15:26:06 +0100 |
| parent | 39:4b08296a6748 |
| rev | line source |
|---|---|
| 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 |
|
39
4b08296a6748
README: Correct location of .clix(rc)? file
Paul Aurich <paul@darkrain42.org>
parents:
31
diff
changeset
|
54 Clix looks for its config file at $XDG_CONFIG_HOME/.clixrc or |
|
4b08296a6748
README: Correct location of .clix(rc)? file
Paul Aurich <paul@darkrain42.org>
parents:
31
diff
changeset
|
55 $XDG_CONFIG_HOME/.clix (XDG_CONFIG_HOME defaults to ~/.config) - it is |
|
4b08296a6748
README: Correct location of .clix(rc)? file
Paul Aurich <paul@darkrain42.org>
parents:
31
diff
changeset
|
56 a simple 'ini' format, which looks like this: |
|
10
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
57 |
|
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
58 [default] |
|
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
59 jid=user@example.com |
|
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
60 password=mypassword |
|
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
61 |
|
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
62 [otheraccount] |
|
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
63 jid=otheruser@example.org |
|
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
64 password=theirpassword |
|
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
65 |
|
49b83fa1f6fd
README: Add config file example
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
66 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
|
67 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
|
68 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
|
69 |
| 6 | 70 ## Building and installing |
| 71 Building clix is (by no accident) quite simple. It depends on Verse, | |
| 72 an XMPP client library for Lua. Verse in turn depends on several | |
| 73 libraries, all dependencies are listed here. | |
| 74 | |
| 75 Verse 2.0+: http://matthewwild.co.uk/projects/verse | |
| 76 At the time of writing Verse 2.x has not been released yet and | |
| 77 is available only from: http://code.matthewwild.co.uk/verse/ | |
| 78 | |
| 79 LuaExpat: http://www.keplerproject.org/luaexpat/ | |
| 80 Lua XML parser. Available in Debian as liblua5.1-expat0 | |
| 81 | |
| 82 LuaSocket: http://www.tecgraf.puc-rio.br/~diego/professional/luasocket/ | |
| 83 Lua networking library. Available in Debian as liblua5.1-socket2 | |
| 84 | |
| 85 Clix can be run directly from source if the above dependencies are | |
| 86 installed. To make life easier it can be installed to standard directories, | |
| 87 on most systems this means to copy clix.lua to /usr/bin/clix and the clix | |
| 88 directory to /usr/lib/lua/5.1/clix (on some non-Debian systems the 5.1 | |
| 89 directory isn't needed). | |
| 90 | |
| 91 Alternatively you can use Squish to compress all Clix's files into a single | |
| 92 executable. If you have Squish installed then simply type 'squish' in | |
| 93 clix's source directory to generate the compacted 'clix.bin' file. Squish | |
| 94 can be found at http://matthewwild.co.uk/projects/squish . | |
| 95 |