Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
IRC C++ eval bot
Haskell C++ C
branch: master

README.xhtml

<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN' 'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd'>

<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
  <head>
    <title>Geordi Readme</title>
  </head>
  <body>

    <h1>Geordi Readme</h1>

    <hr/><h2>Table of Contents</h2>

    <ul>
      <li><a href='#installation'>1. Installation</a></li>
      <li><a href='#running'>2. Running geordi</a></li>
      <li><a href='#localization'>3. Localization</a></li>
      <li><a href='#problems'>4. Known problems</a></li>
    </ul>

    <hr/><h2 id='installation'>1. Installation</h2>

    <p>geordi runs as a docker container.</p>
    <p>To build the image from which the container will be instantiated, in the directory where Dockerfile is, say:</p>
    <pre>  sudo docker build -t geordi .</pre>
    <p>Then, to run a local interactive geordi session, say:</p>
    <pre>  sudo docker run -it geordi</pre>
    <p>Or, to run the IRC bot, say:</p>
    <pre>  sudo docker run -i geordi geordi-irc &lt; irc-config</pre>

    <h4 id='nickserv'>NickServ identification</h4>
    <p>To have the bot identify to NickServ, change the following line in <kbd>irc-config</kbd>:</p>
    <pre>  , nick_pass = Nothing</pre>
    <p>into:</p>
    <pre>  , nick_pass = Just "mypassword"</pre>

    <h4>Nickless requests</h4>
    <p>To have the bot respond to nickless requests (e.g. "<kbd>&lt;&lt; 3</kbd>") in channels #foo, #bar, and #bas, use:</p>
    <pre>  , allow_nickless_requests_in = ["#foo", "#bar", "#bas"]</pre>

    <h4 id='reconnect'>Auto-reconnect</h4>
    <p>Geordi does not auto-reconnect. For that, just use something like</p><pre>  while true; do geordi-irc; sleep 120; done</pre>

    <h4 id='multinetwork'>Connecting to multiple networks</h4>
    <p>Make config files for the different networks. Then run one <kbd>geordi-irc</kbd> instance for each network, passing -c arguments pointing to the respective config files. The <kbd>rt</kbd> directory will be safely shared.</p>

    <h4>Censoring phrases</h4>
    <p>Some networks automatically kick or ban clients that utter certain phrases (like botnet commands). To prevent a geordi bot from uttering these, list regexes for them in irc-config. E.g.:</p>
    <pre>  , censor = ["some naughty phrase", "some wicked utterance"]</pre>

    <hr/><h2 id='localization'>3. Localization</h2>
    <p>To get compiler diagnostics (and some (but not all) other geordi messages) in a locale of your choice, copy the following into <kbd>rt</kbd> (preserving paths, for example using <kbd>cp --parents</kbd>):</p>
    <ul>
      <li>/usr/lib/locale/foo_BAR.utf8/*</li>
      <li>/usr/share/locale/foo/LC_MESSAGES/{cpplib,gcc,libc,libstdc++,opcodes}.mo</li>
    </ul>
    <p>These paths might differ somewhat on your system.</p>
    <p>You may need to install a separate GCC locales package or other kind of language pack for your distro, to get the files above.</p>
    <p>Furthermore, not all of the files above may be available for your locale; copy those that are.</p>
    <p>Additionally, the LC_ALL environment variable must be set to foo_BAR.utf8 when geordi is started. Note that sudo clears environment variables by default, so either use</p><pre>  sudo -E geordi-...</pre><p>or use</p><pre>  sudo env LC_ALL=foo_BAR.utf8 geordi-...</pre>

  </body>
</html>
Something went wrong with that request. Please try again.