Annotate

README @ 153:56546fb3429b

clix.raw: Allow unsandboxed arbitrary code execution Useful for doing things to clix/verse internals
author Kim Alvefur <zash@zash.se>
date Sat, 10 Apr 2021 00:28:05 +0200 (2021-04-09)
parent 39:4b08296a6748
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 # clix - Command-line XMPP tool
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 ## Description
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 Clix is a small utility to interact with an XMPP server. It can be
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 used to send messages, presence, and info queries to any XMPP address.
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
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
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 ## Usage
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 Syntax: clix COMMAND [OPTIONS] [...]
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 Different commands accept different sets of options, but they all
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 follow some general conventions. The command must be the first
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 parameter, followed by a series of flags or options. Global options
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 include:
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 --account=default
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 The account to use from the configuration file (default
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 is 'default')
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
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
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
46 -v
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
47 --verbose
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
48 Enables verbose logging of the XMPP connection
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
49
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
50 When no command is specified, clix will print a list of the names
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
51 and descriptions of all built-in commands.
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
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
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
70 ## Building and installing
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
71 Building clix is (by no accident) quite simple. It depends on Verse,
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
72 an XMPP client library for Lua. Verse in turn depends on several
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
73 libraries, all dependencies are listed here.
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
74
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
75 Verse 2.0+: http://matthewwild.co.uk/projects/verse
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
76 At the time of writing Verse 2.x has not been released yet and
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
77 is available only from: http://code.matthewwild.co.uk/verse/
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
78
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
79 LuaExpat: http://www.keplerproject.org/luaexpat/
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
80 Lua XML parser. Available in Debian as liblua5.1-expat0
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
81
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
82 LuaSocket: http://www.tecgraf.puc-rio.br/~diego/professional/luasocket/
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
83 Lua networking library. Available in Debian as liblua5.1-socket2
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
84
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
85 Clix can be run directly from source if the above dependencies are
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
86 installed. To make life easier it can be installed to standard directories,
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
87 on most systems this means to copy clix.lua to /usr/bin/clix and the clix
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
88 directory to /usr/lib/lua/5.1/clix (on some non-Debian systems the 5.1
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
89 directory isn't needed).
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
90
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
91 Alternatively you can use Squish to compress all Clix's files into a single
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
92 executable. If you have Squish installed then simply type 'squish' in
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
93 clix's source directory to generate the compacted 'clix.bin' file. Squish
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
94 can be found at http://matthewwild.co.uk/projects/squish .
0ec2fd06a962 README: Added
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
95