From 50057d5149dda340b3b47aca4096f4a6ec66b9ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?= Date: Fri, 6 Aug 2021 16:12:15 +0200 Subject: Come up with sillier names for the binaries I'm not entirely sure, but it looks like some people might not like jokes about the Holocaust. On a more serious note, the project has become more serious over the 7 or so years of its existence. --- xB.adoc | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 xB.adoc (limited to 'xB.adoc') diff --git a/xB.adoc b/xB.adoc new file mode 100644 index 0000000..91f7703 --- /dev/null +++ b/xB.adoc @@ -0,0 +1,104 @@ +xB(1) +===== +:doctype: manpage +:manmanual: uirc3 Manual +:mansource: uirc3 {release-version} + +Name +---- +xB - modular IRC bot + +Synopsis +-------- +*xB* [_OPTION_]... + +Description +----------- +*xB* is a modular IRC bot with a programming language-agnostic plugin +architecture based on co-processes. + +Options +------- +*-d*, *--debug*:: + Print more information to help debug various issues. + +*-h*, *--help*:: + Display a help message and exit. + +*-V*, *--version*:: + Output version information and exit. + +*--write-default-cfg*[**=**__PATH__]:: + Write a configuration file with defaults, show its path and exit. ++ +The file will be appropriately commented. + +Commands +-------- +The bot accepts the following commands when they either appear quoted by the +*prefix* string on a channel or unquoted as a private message sent directly +to the bot, on the condition that the sending user matches the *admin* +regular expression or that it is left unset: + +*quote* [_message_]:: + Forwards the message to the IRC server as-is. +*quit* [_reason_]:: + Quits the IRC server, with an optional reason string. +*status*:: + Sends back a report about its state and all loaded plugins. +*load* _plugin_[, _plugin_]...:: + Tries to load the given plugins. +*unload* _plugin_[, _plugin_]...:: + Tries to unload the given plugins. +*reload* _plugin_[, _plugin_]...:: + The same as *unload* immediately followed by *load*. + +Plugins +------- +Plugins communicate with the bot over their standard input and output streams +using the IRC protocol. (Caveat: the standard C library doesn't automatically +flush FILE streams for pipes on newlines.) A special *ZYKLONB* command is +introduced for RPC, with the following subcommands: + +*ZYKLONB get_config* _key_:: + Request the value of the given configuration option. If no such option + exists, the value will be empty. The response will be delivered in + the following format: ++ +``` +ZYKLONB :value +``` ++ +This is particularly useful for retrieving the *prefix* string. + +*ZYKLONB print* _message_:: + Make the bot print the _message_ on its standard output. + +*ZYKLONB register*:: + Once a plugin issues this command, it will start receiving all of the bot's + incoming IRC traffic, which includes data from the initialization period. + +All other commands will be forwarded directly to the IRC server. + +Files +----- +*xB* follows the XDG Base Directory Specification. + +_~/.config/xB/xB.conf_:: + The bot's configuration file. Use the *--write-default-cfg* option + to create a new one for editing. + +_~/.local/share/xB/_:: + The initial working directory for plugins, in which they may create private + databases or other files as needed. + +_~/.local/share/xB/plugins/_:: +_/usr/local/share/xB/plugins/_:: +_/usr/share/xB/plugins/_:: + Plugins are searched for in these directories, in order, unless + the *plugin_dir* configuration option overrides this. + +Reporting bugs +-------------- +Use https://git.janouch.name/p/uirc3 to report bugs, request features, +or submit pull requests. -- cgit v1.2.3