slack irc gateway in a world with no generics
Make sure your $GOPATH\bin
is in your $PATH
and simply run tanya
. If you haven't created a configuration file yet, it will prompt you to log into Slack and automatically grab an API token. An IRC server will then start listening on :6667
by default.
Tanya will report unhandled events from the Slack RTM event stream via stderr, and select error and status messages are also sent to all connected IRC clients via the *tanya
virtual user. (Patches welcome for unhandled RTM events.)
A sample config file is provided for your convenience. Multiple gateway instances can be configured by providing multiple [[gateway]]
blocks. Note that tanya is not designed for overlaying multiple slack workspaces into a single IRC server, and no support for this use case is planned.
If you experience a "hang" while running tanya
(e.g. IRC clients staying connected, but no messages are sent/received; or "split-brain", where messaging becomes unidirectional), you've probably run into a bug which has caused a race condition. If possible, terminate the tanya
instance with SIGABRT
, which triggers a dump of all goroutine stacks to stderr
, and open an issue with the aforementioned output.