graph-cli
Version:
Open Graph API command line interface (shell)
127 lines (113 loc) • 3.56 kB
JavaScript
// Generated by CoffeeScript 1.6.3
(function() {
var CLI, Graph, repl,
__slice = [].slice;
repl = require('repl');
Graph = require('graph-common').Graph;
CLI = (function() {
function CLI() {}
CLI.running = false;
CLI.message = "";
CLI.delimeter = "";
CLI.input_message = ">>";
CLI.run = function(argv, exit) {
var configuration_manager;
return configuration_manager = CLI.graph = new Graph(CLI.configuration_manager(argv), function() {
console.log(CLI.graph.configuration.name);
return repl.start({
prompt: "> ",
input: process.stdin,
output: process.stdout,
useColors: true,
useGlobal: true,
ignoreUndefined: true,
"eval": function(cmd, context, filename, callback) {
cmd = cmd.replace(/^\s*\(\s*/g, '').replace(/\s*\)\s*$/g, '');
if (!cmd || cmd === '') {
callback(null, void 0);
return null;
}
return CLI.graph.run(cmd, function(query) {
return callback(null, query.result);
});
}
}).on('exit', function() {
var args, _ref;
args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
if ((_ref = CLI.graph) != null) {
_ref.disconnect();
}
return exit.apply(null, args);
});
});
};
CLI.configuration_manager = function(argv) {
var ConfigurationManager, mongo_database, mongo_host, mongo_port, mongo_uri;
mongo_host = argv.host || process.env.DB_PORT_27017_TCP_ADDR || 'localhost';
mongo_port = argv.port || process.env.DB_PORT_27017_TCP_PORT || '27017';
mongo_database = argv.database || 'graph';
mongo_uri = "mongodb://" + mongo_host + ":" + mongo_port + "/" + mongo_database;
ConfigurationManager = require('graph-common').ConfigurationManager;
return new ConfigurationManager({
name: "Piráti Open Graph API",
di: {
StorageManager: './storage_manager',
SchemaManager: './schema_manager',
NodeManager: './node_manager',
RouterManager: './router_manager',
GQL: './gql'
},
SchemaManager: {
"Schema": "./schema_schema",
"Node": "./node_schema",
"Router": "./router_schema"
},
StorageManager: mongo_uri,
NodeManager: {
"": {
name: "root",
path: "",
router: 'EchoRouter'
},
"echo": {
name: "echo",
path: "echo",
router: 'EchoRouter'
},
"echo/redirect": {
name: "redirect",
path: "echo/redirect",
router: 'RedirectRouter',
configuration: {
redirect: "echo"
}
},
"node": {
name: "node",
path: "node",
router: 'StorageRouter',
configuration: {
schema: "Node"
}
}
},
RouterManager: {
"EchoRouter": {
name: "EchoRouter",
require: "./echo_router"
},
"RedirectRouter": {
name: "RedirectRouter",
require: "./redirect_router"
},
"StorageRouter": {
name: "StorageRouter",
require: "./storage_router"
}
}
});
};
return CLI;
})();
module.exports = CLI;
}).call(this);