mirror of
https://salsa.debian.org/mdosch/go-sendxmpp
synced 2024-11-15 00:15:10 +00:00
204 lines
6.8 KiB
Markdown
204 lines
6.8 KiB
Markdown
go-sendxmpp(1) -- A tool to send messages to an XMPP contact or MUC.
|
|
====
|
|
|
|
## SYNOPSIS
|
|
|
|
`go-sendxmpp [-cdilnt] [-a value] [-f value] [--headline] [--help] [-h value] [-j value] [-m value] [--muc-password value]
|
|
[--oob-file value] [--ox] [--ox-delete-nodes] [--ox-genprivkey-rsa] [--ox-genprivkey-x25519] [--ox-import-privkey value]
|
|
[--ox-passphrase value] [-p value] [--raw] [--scram-mech-pinning value] [--ssdp-off] [--timeout value] [--tls-version value] [-u value]
|
|
[--version] [recipients…]`
|
|
|
|
## DESCRIPTION
|
|
|
|
A tool to send messages to an XMPP contact or MUC inspired by `sendxmpp`.
|
|
You can either pipe a programs output to `go-sendxmpp`, write in your terminal (put `^D` in a new line to
|
|
finish) or send the input from a file (`-m` or `--message`).
|
|
The account data is expected at `~/.config/go-sendxmpp/config` (preferred), `~/.config/go-sendxmpp/sendxmpprc`
|
|
(deprecated) `~/.sendxmpprc` (for compatibility with the original perl sendxmpp) if no other configuration
|
|
file location is specified with `-f` or `--file`.
|
|
|
|
## OPTIONS
|
|
|
|
* `-a`, `--alias`=[<value>]:
|
|
Set alias/nickname for chatrooms.
|
|
|
|
* `-c`, `--chatroom`=[<value>]:
|
|
Send message to a chatroom.
|
|
|
|
* `-d`, `--debug`:
|
|
Show debugging info.
|
|
|
|
* `-f`, `--file`=[<value>]:
|
|
Set configuration file. (Default: ~/.config/go-sendxmpp/config)
|
|
|
|
* `--headline`:
|
|
Send message as type headline.
|
|
|
|
* `--help`:
|
|
Show help.
|
|
|
|
* `-h`, `--http-upload=`[<value>]:
|
|
Send a file via http-upload.
|
|
|
|
* `-i`, `--interactive`:
|
|
Interactive mode (for use with e.g. `tail -f`).
|
|
|
|
* `-j`, `--jserver`=[<value>]:
|
|
XMPP server address.
|
|
|
|
* `-l`, `--listen`:
|
|
Listen for messages and print them to stdout. If JIDs are specified only messages from those contacts
|
|
are shown. If no JIDs are specified all received messages will be shown.
|
|
|
|
* `-m`, `--message`=[<value>]:
|
|
Set file including the message.
|
|
|
|
* `--muc-password`=[<value>]:
|
|
Password for password protected MUCs.
|
|
|
|
* `-n`, `--no-tls-verify`:
|
|
Skip verification of TLS certificates (not recommended).
|
|
|
|
* `--oob-file`=[<value>]:
|
|
URL to send a file as out of band data.
|
|
|
|
* `--ox`:
|
|
Use "OpenPGP for XMPP" encryption (experimental).
|
|
Ox in go-sendxmpp only supports sending encrypted 1-1 messages. Sending to groupchats and
|
|
sending encrypted files is not supported.
|
|
There is no check whether the recipients key is trusted as there is no local keyring used.
|
|
Go-sendxmpp just uses the most recent key that is provided via pubsub and checks that it is not
|
|
expired. As a user facing client a notification would be shown that a new key is available and
|
|
ask the user whether to use the new key or stick to the old one. As go-sendxmpp is usually
|
|
used in scripts it just accepts the new key to prevent the user from missing a new notification
|
|
due to changed keys.
|
|
|
|
* `--ox-delete-nodes`:
|
|
Delete existing OpenPGP nodes on the server.
|
|
|
|
* `--ox-genprivkey-rsa`:
|
|
Generate a private OpenPGP key (RSA 4096 bit) for the configured account (via config file or `-u` and `-p`)
|
|
and publish the corresponding public key.
|
|
Go-sendxmpp will save the key in `$XDG_DATA_HOME/go-sendxmpp/oxprivkeys` or
|
|
`$HOME/.local/share/go-sendxmpp/oxprivkeys`. To protect the key a passphrase might be set
|
|
using `--ox-passphrase` while generating the key.
|
|
If there is an existing private key for "OpenPGP for XMPP" created by another client (e.g. profanity)
|
|
it might be imported using `--ox-import-privkey`.
|
|
|
|
* `--ox-genprivkey-x25519`:
|
|
Generate a private OpenPGP key (X25519) for the configured account (via config file or `-u` and `-p`)
|
|
and publish the corresponding public key.
|
|
Go-sendxmpp will save the key in `$XDG_DATA_HOME/go-sendxmpp/oxprivkeys` or
|
|
`$HOME/.local/share/go-sendxmpp/oxprivkeys`. To protect the key a passphrase might be set
|
|
using `--ox-passphrase` while generating the key.
|
|
If there is an existing private key for "OpenPGP for XMPP" created by another client (e.g. profanity)
|
|
it might be imported using `--ox-import-privkey`.
|
|
|
|
* `--ox-import-privkey`=[<value>]:
|
|
Import an existing private OpenPGP key.
|
|
|
|
* `--ox-passphrase`=[<value>]:
|
|
Passphrase for locking and unlocking the private OpenPGP key.
|
|
|
|
* `--tls-version`=[<value>]:
|
|
Minimal TLS version. 10 (TLSv1.0), 11 (TLSv1.1), 12 (TLSv1.2), 13 (TLSv1.3) (Default: 12)
|
|
|
|
* `-p`, `--password`=[<value>]:
|
|
Password for XMPP account.
|
|
|
|
* `--raw`:
|
|
Send raw XML. To send raw XML to a contact as normal chat message no contact must be specified.
|
|
To send raw XML to a MUC you have to specify the MUC via `-c` and go-sendxmpp will join the MUC.
|
|
|
|
* `--scram-mech-pinning=[<value>]`:
|
|
Enforce the use of a certain SCRAM authentication mechanism. Currently go-sendxmpp supports
|
|
**SCRAM-SHA-1**, **SCRAM-SHA-1-PLUS**, **SCRAM-SHA-256**, **SCRAM-SHA-256-PLUS**, **SCRAM-SHA-512**
|
|
and **SCRAM-SHA-512-PLUS**. You should know what you are doing when using this setting and
|
|
make sure the chosen mechanism is supported by the server. If not set, go-sendxmpp will use XEP-0474
|
|
to prevent downgrade attacks (needs server support).
|
|
|
|
* `--ssdp-off`:
|
|
Disable XEP-0474: SASL SCRAM Downgrade Protection.
|
|
|
|
* `--timeout=`[<value>]:
|
|
Connection timeout in seconds. (Default: 10)
|
|
|
|
* `-t`, `--tls`:
|
|
Use direct TLS.
|
|
|
|
* `-u`, `--username`=[<value>]:
|
|
Username for XMPP account (JID).
|
|
|
|
* `--version`:
|
|
Show version information.
|
|
|
|
## ENVIRONMENT VARIABLES
|
|
|
|
### HTTP_PROXY
|
|
|
|
A SOCKS5 proxy can be used by setting the environment variable `HTTP_PROXY`. This feature is considered experimental
|
|
and there is no guarantee that there won't be any connections not using the proxy although it didn't happen during
|
|
testing.
|
|
|
|
```
|
|
HTTP_PROXY="socks5://127.0.0.1:9050" go-sendxmpp --http-upload file.txt user@example.org
|
|
```
|
|
|
|
## TIPS
|
|
|
|
### USAGE BY ROOT
|
|
|
|
In general it's a good advice to only perform commands as root when it is strictly necessary. To be able to send
|
|
the output from commands, that need to be performed as root, with go-sendxmpp without invoking go-sendxmpp by
|
|
root sudo can be used.
|
|
|
|
In this example there is a user **sendxmpp** with a go-sendxmpp config in its `$HOME`:
|
|
|
|
```
|
|
# command-that-requires-root|sudo -H -u sendxmpp go-sendxmpp me@example.org
|
|
```
|
|
|
|
|
|
## SHELL COMPLETIONS
|
|
|
|
### ZSH
|
|
|
|
There are no shell completions yet (contributions welcome) but for zsh it is
|
|
possible to automatically create completions from `--help` which might work
|
|
good enough.
|
|
|
|
Just place the following in your `~/.zshrc` or `~/.zshrc.local`:
|
|
|
|
```
|
|
compdef _gnu_generic go-sendxmpp
|
|
```
|
|
|
|
### FISH
|
|
|
|
There are no shell completions yet, but FISH can generate them from the man page with following command:
|
|
|
|
```
|
|
fish_update_completions
|
|
```
|
|
|
|
## CHAT
|
|
|
|
Feel free to join [https://join.jabber.network/#go-sendxmpp@chat.mdosch.de?join](https://join.jabber.network/#go-sendxmpp@chat.mdosch.de?join).
|
|
|
|
## AUTHOR
|
|
|
|
Written by Martin Dosch.
|
|
|
|
## REPORTING BUGS
|
|
|
|
Report bugs at [https://salsa.debian.org/mdosch/go-sendxmpp/issues](https://salsa.debian.org/mdosch/go-sendxmpp/issues).
|
|
|
|
## COPYRIGHT
|
|
|
|
Copyright (c) Martin Dosch
|
|
License: BSD 2-clause License
|
|
|
|
## SEE ALSO
|
|
|
|
go-sendxmpp(5), sendxmpp(1)
|