0.0.5 • Published 8 years ago

gogo-shell v0.0.5

Weekly downloads
1,076
License
MIT
Repository
github
Last release
8 years ago

gogo-shell Build Status Coverage Status

A Node wrapper for sending Gogo commands to an OSGi environment

Install

$ npm install --save gogo-shell

Usage

Note: a Gogo shell must be running before invoking the connect method, otherwise a connection error will be thrown.

var GogoShell = require('gogo-shell');

var gogoShell = new GogoShell();

var config = {
    port: 11311
};

gogoShell.connect(config)
    .then(function() {
        return gogoShell.sendCommand('lb');
    })
    .then(function(data) {
        // Do something with response data

        gogoShell.end();
    });

API

GogoShell is an instance of net.Socket and inherits all it's properties, methods, and events.

new GogoShell(options)

options

Type: object

The GogoShell constructor can also be passed the same configuration options as the net.Socket constructor.

debug

type: boolean

If set to true, prints all commands sent to the server, and all response data from the server to stdout.

examples

var GogoShell = require('gogo-shell');

var gogoShell = new GogoShell({
    debug: true
});

connect(options)

Connects to a TCP server which allows you to send Gogo commands to an OSGi environment. Returns a Promise which resolves when the server is ready to receive commands.

options

Type: object

host

Type: string Default: 127.0.0.1

port

Type: number Required: true

See socket.connect method for other options and their default values.

examples

var GogoShell = require('gogo-shell');

var gogoShell = new GogoShell();

var config = {
    port: 11311
};

gogoShell.connect(config)
    .then(function() {
        // gogoShell.sendCommand(...);
    });

help(command)

Returns Promise that resolves with array of available commands, or object literal containing information on specified command.

command

Type: string

The Gogo command to retieve help info for.

examples

gogoShell.help()
    .then(function(data) {
        // data = array of available commands
    });
gogoShell.help('install')
    .then(function(data) {
        // data = object literal containing api information for specified command
    });

sendCommand(command, options)

Sends Gogo command to an OSGi environment. Returns a Promise that resolves with the response data.

command

Type: string

The Gogo command that will be sent to the OSGi environment.

options

Type: string

Additional parameters, flags, and options that will be joined with the command argument.

examples

gogoShell.sendCommand('lb', '-s')
    .then(function(data) {
        // data = list of installed bundles with symbolic name
    });

Chaining commands.

var GogoShell = require('gogo-shell');

var gogoShell = new GogoShell();

var config = {
    port: 11311
};

gogoShell.connect(config)
    .then(function() {
        return gogoShell.sendCommand('lb');
    })
    .then(function(data) {
        // data = response from 'lb'

        return gogoShell.sendCommand('another command');
    })
    .then(function(data) {
        // data = response from 'another command'

        // Using socket.end for closing connection, otherwise Node process wouldn't end
        gogoShell.end();
    });

MIT