wtsi-hgi/tabula

Name: tabula

Owner: Wellcome Trust Sanger Institute - Human Genetics Informatics

Description: Project logging and analysis in the console.

Created: 2014-02-04 20:02:32.0

Updated: 2017-02-18 18:24:41.0

Pushed: 2016-04-18 14:31:05.0

Homepage: null

Size: 125

Language: Haskell

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Tabula is a tool for recording and analysing command line sessions.

At a basic level, it's quite similar to the Unix 'script' tool, but rather than just recording everything that's typed or displayed, tabula tries to capture much more meaningful information about the actions that are being performed. It explicitly captures commands that are run and whether they were successful or not, the directory and environment they were run in, and the input and output consumed and produced.

Tabula reports either locally to a log file or centrally to a redis server. Using redis allows sessions to be accessed concurrently from multiple locations, and lets multiple people collaborate in a single session.

Output is produced in JSON format for easy analysis.

Usage

To start a basic recorded shell session, simply type tabula start. This will record to a session called default stores on your local machine at $HOME/.tabula/projects. Ctrl-d will terminate the recorded session and return you to your regular terminal.

You can connect to a different data store using the -d option, or specify the name of a different session by adding it as an argument. For example, to work on a project called 'homework' and write to a file in the current directory, you could do:

tabula start -d file://`pwd` homework

Currently, tabula recognises two protocols for storage: file://, which stores records on the local filesystem, and redis://, which connects to a redis server. For example, if you have a redis server running on localhost then you can connect to it using:

tabula start -d redis://localhost:6379

At present, tabula does not support authenticated connections to redis servers.

To review an existing session, you can use tabula cat to print out the session. cat admits both the -d option and the project name in the same was as start. It also allows you to print only the commands invoked as if recorded by bash history - to do this, use the --as-history option.

To view all sessions available at a destination, you may use tabula ls.

la - a utility for recording shell sessions.

e: tabula COMMAND [-V|--verbosity LEVEL] [-q|--quiet]
en a recorded shell session for a specific project.

lable options:
version                Print version information
,--help                Show this help text
,--verbosity LEVEL     Set logging level (default ERROR)
,--quiet               Disable logging

lable commands:
art                    Start or resume a project session.
t                      Print a project session to stdout.
                       List all projects created at a destination.

Building from source

Prerequisites:

The easiest way to build is in a cabal sandbox.

clone git@github.com:nc6/tabula.git
abula
l sandbox init
l update
l install --dependencies-only
l configure
l build

This will generate the tabula executable in dist/build/tabula/tabula.

Bash completions

Tabula comes (courtesy of optparse-applicative) with the option to generate automatic bash completions. The easiest way to get access to these is the following:

source <(tabula --bash-completion-script `which tabula`)

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.