Tetra

command module
v0.0.0-...-dd27f12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 29, 2015 License: Zlib Imports: 6 Imported by: 0

README

Tetra

GoDoc

Tetra is an extended services package for TS6 IRC daemons with Lua and Moonscript support.

Features

  • JSON API
  • Lua / Moonscript script loading
  • Hooking on protocol events
  • Hooking on arbitrary events
  • Client/Channel/Server link tracking
  • Statistics via influxdb
  • Persistent data via etcd
  • Atheme integration
Things still in progress
  • Feature parity with Cod
  • Documentation on migration from Cod to Tetra
  • Scripts being able to define webpages

Building a script for Tetra is as easy as:

Command "PING", ->
  "PONG"

Installation

From git

You need the following buildtime dependencies:

  • liblua5.1-dev
  • golang
  • libsqlite3-dev

Example commands to set up the global environment needed for Tetra are in the included Dockerfile.

$ go get github.com/Xe/Tetra
$ cd $GOPATH/github.com/Xe/Tetra

Continue with configuration.

From a tarball

Install liblua5.1-dev then extract the tarball and continue with configuration.

Configuration

Look at the example config, copy it to etc/config.yaml or set TETRA_CONFIG_PATH to a file on the disk. Edit the config to your needs.

Running

You need to set up etcd for runtime key->value support for Tetra. You also need to set up InfluxxDB if you want to have Tetra track channel and server statistics. An instance of Atheme with the XMLRPC module loaded is required.

You need the following lua rocks:

  • luasocket
  • moonscript
  • yaml
  • json4lua
  • lsqlite3

All are available in moonrocks.

Documentation

Overview

Command Tetra is an extended services package for TS6 IRC daemons with Lua and Moonscript support.

Directories

Path Synopsis
Package r1459 implements a base structure to scrape out and utilize an RFC 1459 frame in high level Go code.
Package r1459 implements a base structure to scrape out and utilize an RFC 1459 frame in high level Go code.
Godeps
_workspace/src/code.google.com/p/go-uuid/uuid
The uuid package generates and inspects UUIDs.
The uuid package generates and inspects UUIDs.
_workspace/src/github.com/aarzilli/golua/lua
This package provides access to the excellent lua language interpreter from go code.
This package provides access to the excellent lua language interpreter from go code.
_workspace/src/github.com/codegangsta/negroni
Package negroni is an idiomatic approach to web middleware in Go.
Package negroni is an idiomatic approach to web middleware in Go.
_workspace/src/github.com/drone/routes
Package routes a simple http routing API for the Go programming language, compatible with the standard http.ListenAndServe function.
Package routes a simple http routing API for the Go programming language, compatible with the standard http.ListenAndServe function.
_workspace/src/github.com/drone/routes/exp/cookie/authcookie
Package authcookie implements creation and verification of signed authentication cookies.
Package authcookie implements creation and verification of signed authentication cookies.
_workspace/src/github.com/drone/routes/exp/routes
Package routes a simple http routing API for the Go programming language, compatible with the standard http.ListenAndServe function.
Package routes a simple http routing API for the Go programming language, compatible with the standard http.ListenAndServe function.
_workspace/src/github.com/phyber/negroni-gzip/gzip
Package gzip implements a gzip compression handler middleware for Negroni.
Package gzip implements a gzip compression handler middleware for Negroni.
_workspace/src/github.com/rcrowley/go-metrics
Go port of Coda Hale's Metrics library <https://github.com/rcrowley/go-metrics> Coda Hale's original work: <https://github.com/codahale/metrics>
Go port of Coda Hale's Metrics library <https://github.com/rcrowley/go-metrics> Coda Hale's original work: <https://github.com/codahale/metrics>
Metrics output to StatHat.
_workspace/src/github.com/robfig/cron
This library implements a cron spec parser and runner.
This library implements a cron spec parser and runner.
_workspace/src/github.com/sjkaliski/go-yo
The yo package provides an api client for the Yo app api, with methods to send Yo's to users.
The yo package provides an api client for the Yo app api, with methods to send Yo's to users.
_workspace/src/github.com/stevedonovan/luar
luar provides a more convenient way to access Lua from Go, using Alessandro Arzilli's golua (https://github.com/aarzilli/golua).
luar provides a more convenient way to access Lua from Go, using Alessandro Arzilli's golua (https://github.com/aarzilli/golua).
_workspace/src/github.com/stevedonovan/luar/examples
A golua REPL with line editing, pretty-printing and tab completion.
A golua REPL with line editing, pretty-printing and tab completion.
_workspace/src/gopkg.in/unrolled/render.v1
Package render is a package that provides functionality for easily rendering JSON, XML, binary data, and HTML templates.
Package render is a package that provides functionality for easily rendering JSON, XML, binary data, and HTML templates.
_workspace/src/gopkg.in/yaml.v1
Package yaml implements YAML support for the Go language.
Package yaml implements YAML support for the Go language.
Package atheme implements an Atheme XMLRPC client and does all the horrifyingly ugly scraping of the raw output to machine-usable structures.
Package atheme implements an Atheme XMLRPC client and does all the horrifyingly ugly scraping of the raw output to machine-usable structures.
xmlrpc
Package xmlrpc implements a simple xmlrpc client.
Package xmlrpc implements a simple xmlrpc client.
bot
Package tetra implements the core for a TS6 pseudoserver.
Package tetra implements the core for a TS6 pseudoserver.
config
Package config holds the configuration for Tetra.
Package config holds the configuration for Tetra.
modes
Package modes contains a bunch of constants and lookup tables that are a pain to use without this file.
Package modes contains a bunch of constants and lookup tables that are a pain to use without this file.
script
Package script is for the resuable lua scripting engine that Tetra uses.
Package script is for the resuable lua scripting engine that Tetra uses.
script/charybdis
Package charybdis contains wrapped functions taken directly from the charybdis source tree.
Package charybdis contains wrapped functions taken directly from the charybdis source tree.
script/crypto
Package crypto is for cryptographic or similar kinds of functions.
Package crypto is for cryptographic or similar kinds of functions.
script/strings
Package strings contains Tetra's string manipulation functions that are exposed to lua scripts.
Package strings contains Tetra's string manipulation functions that are exposed to lua scripts.
web
Package web is a series of negroni middlewares for Tetra.
Package web is a series of negroni middlewares for Tetra.
Package modules is a collection of lua scripts that represent loadable modules for Tetra.
Package modules is a collection of lua scripts that represent loadable modules for Tetra.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL