go-xmpp/cmd/sendxmpp
2019-07-27 16:36:35 -07:00
..
cmd.go add parameter and config for address to sendxmpp 2019-07-27 16:36:35 -07:00
doc.go first idea of sendxmpp 2019-07-27 16:36:35 -07:00
log.go first idea of sendxmpp 2019-07-27 16:36:35 -07:00
main.go first idea of sendxmpp 2019-07-27 16:36:35 -07:00
muc.go first idea of sendxmpp 2019-07-27 16:36:35 -07:00
README.md add parameter and config for address to sendxmpp 2019-07-27 16:36:35 -07:00
send.go first idea of sendxmpp 2019-07-27 16:36:35 -07:00

sendXMPP

sendxmpp is a tool to send messages from commandline

Installation

To install sendxmpp in your Go path:

$ go get -u gosrc.io/xmpp/cmd/sendxmpp

Usage

$ sendxmpp --help
Usage:
  sendxmpp <recieve,> [message] [flags]

Examples:
sendxmpp to@chat.sum7.eu "Hello World!"

Flags:
      --addr string       host[:port]
      --config string     config file (default is ~/.config/fluxxmpp.yml)
  -h, --help              help for sendxmpp
      --jid string        using jid (required)
  -m, --muc               reciever is a muc (join it before sending messages)
      --password string   using password for your jid (required)
  -i, --stdin             read from stdin instatt of 2. argument

Examples

Message from arguments:

$ sendxmpp to@example.org "Hello Welt"
 info client connected
   ⇢  cmd.go:56 main.glob..func1.1
   ⇢  2019-07-17T23:42:43.310+02:00
 info send message
   ⇢  muc=false text="Hello Welt" to="to@example.org"
   ⇢  send.go:31 main.send
   ⇢  2019-07-17T23:42:43.310+02:00

Message from STDIN:

$  journalctl -f | sendxmpp to@example.org --stdin
 info client connected
   ⇢  cmd.go:56 main.glob..func1.1
   ⇢  2019-07-17T23:40:03.177+02:00
 info send message
   ⇢  muc=false text="-- Logs begin at Mon 2019-07-08 22:16:54 CEST. --" to="to@example.org"
   ⇢  send.go:31 main.send
   ⇢  2019-07-17T23:40:03.178+02:00
 info send message
   ⇢  muc=false text="Jul 17 23:36:46 RECHNERNAME systemd[755]: Started Fetch mails." to="to@example.org"
   ⇢  send.go:31 main.send
   ⇢  2019-07-17T23:40:03.178+02:00
^C

Multiple reciever:

$ sendxmpp to1@example.org,to2@example.org "Multiple reciever"
 info client connected
   ⇢  cmd.go:56 main.glob..func1.1
   ⇢  2019-07-17T23:47:57.650+02:00
 info send message
   ⇢  muc=false text="Multiple reciever" to="to1@example.org"
   ⇢  send.go:31 main.send
   ⇢  2019-07-17T23:47:57.651+02:00
 info send message
   ⇢  muc=false text="Multiple reciever" to="to2@example.org"
   ⇢  send.go:31 main.send
   ⇢  2019-07-17T23:47:57.652+02:00

Send to MUC:

journalctl -f | sendxmpp testit@conference.chat.sum7.eu --stdin --muc
 info client connected
   ⇢  cmd.go:56 main.glob..func1.1
   ⇢  2019-07-17T23:52:56.269+02:00
 info send message
   ⇢  muc=true text="-- Logs begin at Mon 2019-07-08 22:16:54 CEST. --" to="testit@conference.chat.sum7.eu"
   ⇢  send.go:31 main.send
   ⇢  2019-07-17T23:52:56.270+02:00
 info send message
   ⇢  muc=true text="Jul 17 23:48:58 RECHNERNAME systemd[755]: mail.service: Succeeded." to="testit@conference.chat.sum7.eu"
   ⇢  send.go:31 main.send
   ⇢  2019-07-17T23:52:56.277+02:00
^C

Authentification

Configuration file

In /etc/, ~/.config and . (here). You could create the file name fluxxmpp with you favorite file extenion (e.g. toml, yml).

e.g. ~/.config/fluxxmpp.toml

jid      = "bot@example.org"
password = "secret"

addr     = "example.com:5222"

Enviroment variable

export FLUXXMPP_JID='bot@example.org';
export FLUXXMPP_PASSWORD='secret';

export FLUXXMPP_ADDR='example.com:5222';

sendxmpp to@example.org "Hello Welt";

Parameter

Warning: This should not be used in productiv system. (Every user on the system could read the running processes with parameter - on this way the password)

sendxmpp to@example.org "Hello Welt" --jid bot@example.org --password secret --addr example.com:5222;