Skip to content

burnce/baton

 
 

Repository files navigation

baton |bəˈtän|

  noun, A short stick or staff or something resembling one.

Client programs and API for use with iRODS (Integrated Rule-Oriented
Data System).

baton is intended as a supplement to the command line client programs
(ils, imeta etc.) provided with a standard iRODS installation. Its
focus is metadata operations for iRODS collections and data objects.
baton is spelled with a lower case letter 'b'.

The features it provides are:

- A single JSON format for listing results, composing queries and
  performing updates.

- Listing of data objects and collections as JSON, including their
  metadata (AVUs), file size, access control lists (ACLs) and creation
  and modification timestamps.

- Queries on metadata, on access control lists (ACLs), creation and
  modification timestamps and timestamp ranges. The full range of
  iRODS query operators is supported.

- Optional unbuffered IO for IPC via pipes, with fine-grained error
  reporting for batch operations.

- Simplified API over the iRODS general query API to ease construction
  of new custom queries.

- Downloading data objects as files or embedded in JSON (if data
  object content is UTF-8).

For further details see the man pages or manual, which is available
online at http://wtsi-npg.github.io/baton/

iRODS compatibility:

- Compatible with iRODS 3.2, 3.3, 3.3.1 and 4.1.x

- Not compatible with iRODS 4.0.1 and 4.0.2 (which lack required API
  functions with C linkage).


Installation:

1. Install iRODS 3.3.x or 4.x and the baton dependencies (Jansson) as
   described in their documentation.

2. If you have cloned the baton git repository, run autoconf to
   generate the configure script:

   autoreconf -i

   If you have downloaded a release tarball, the configure script is
   included, so proceed to step 3.

3. For a run-in-place installation of iRODS 3.3.x or iRODS 4.x, run the
   configure script using a --with-irods argument to indicate the root
   directory of the iRODS source tree.

   ./configure --with-irods=/path/to/irods

   You may set the location of your preferred Boost installation by
   using a --with-boost argument.

   For a packaged (.deb) installation of iRODS 4.x, run the configure
   script without any --with-irods argument.

   ./configure

4. Compile

   make

5. Optionally, run the test suite

   make check

6. If you have run configure with the optional --enable-coverage flag
   you can generate test coverage statistics with lcov.

   make check-coverage

7. Install, including HTML manual and manpage.

   make clean install


Synopsis:

For full details of the JSON accepted and returned by the programs in
baton, see the manual in the doc directory.


Dependencies:

iRODS   https://github.com/irods/irods-legacy

        Versions 3.2, 3.3, 3.3.1

        https://github.com/irods/irods

        Versions 4.1.x

Jansson https://github.com/akheron/jansson.git

        Versions >= 2.6

Optional dependencies:

Sphinx http://sphinx-doc.org/               (for the manual and manpages).
check  http://check.sourceforge.net/        (for unit tests).

       Versions >= 0.9.10

lcov   http://ltp.sourceforge.net/coverage/ (for test coverage analysis)

jq     http://stedolan.github.io/jq/        (for processing input and output)


baton uses the boost.m4 M4 macros by Benoit Sigoure to detect the
Boost libraries used by iRODS 4.x (https://github.com/tsuna/boost.m4)

Packages

No packages published

Languages

  • C 89.4%
  • Objective-C 2.8%
  • M4 2.7%
  • Shell 2.5%
  • Perl 1.8%
  • Makefile 0.8%