node package manager
Stop wasting time. Easily manage code sharing in your team. Create a free org »

neo4j-supervisor

neo4j-supervisor

manage a neo4j server installation

install

npm install neo4j-supervisor

example

var supervise = require('neo4j-supervisor');
var neo = supervise('/potato/neo4j');
 
neo.clean(function(err) { ... }); // purge all data from the database
neo.running(function(yep) { ... }); // check if instance is running
neo.start(function() { ... }); // start an instance
//... etc - see below for a list of available functions

portability

doesn't work on windows. :~~[

tmux

Neo4j 3 has problems starting up inside tmux on OS X. To get this working, you'll need to run brew install reattach-to-user-namespace. It should just work on its own after this.

functions

all the callbacks are in the format function(err, output) unless otherwise specified

  • neo.clean(cb) - purge all data from the database. this is rather forceful - it physically wipes that data from the disk. therefore I don't suggest trying it while the server is running. (but if you feel like trying it, go ahead! i won't stop you.)
  • neo.running(cb) - check if the server is running. callback is given one arg, a boolean that's set to true if the server is running
  • neo.attached(cb) - check if the API endpoint is responding. there is a brief period on startup where running will return true and attached will return false.
  • neo.waitForAttach(cb) - wait until neo.attached returns true, then call cb.
  • neo.start(cb) - start the server. will wait until api is available before cb is called.
  • neo.stop(cb) - stop the server
  • neo.restart(cb) - restart the server. will wait until api is available before cb is called
  • neo.config([key], [value], cb) - either get all of the server's configuration values (as an obj), or a single key, or set a value, depending on which args are passed (key and value are optional).
  • neo.port([port], cb) - if port is specified, set the port of the server to port. otherwise, get the port of the server.
  • neo.host([host], cb) - same as port, but with hostname.
  • neo.pid(cb) - find the pid of the server or null
  • neo.endpoint(cb) - get the endpoint configuration of the server. calls back with an object containing server—the location of the server with protocol and port, and endpoint—the path of the api endpoint on top of server. this conveniently fits straight into seraph.