flatiron-cli-config

Encapsulated commands for managing configuration in flatiron CLI apps

flatiron-cli-config

Encapsulated commands for managing configuration in flatiron CLI apps

At its core flatiron-cli-config is a broadway-compatible plugin which can be used by any flatiron application:

  var flatiron = require('flatiron'),
      app = flatiron.app;
 
  // 
  // Configure the Application to be a CLI app with 
  // a JSON configuration file `test-config.json` 
  // 
  app.name = 'app.js';
  app.config.file({ file: 'test-config.json' });
  app.use(flatiron.plugins.cli, {
    usage: 'A simple CLI app using flatiron-cli-config'
  });
 
  // 
  // Expose CLI commands using `flatiron-cli-config` 
  // 
  app.use(require('flatiron-cli-config'));
 
  if (!module.parent) {
    // 
    // Start the application 
    // 
    app.start();
  }

If you run the above script:

  $ node app.js config set foo bar
  $ node app.js config get foo

The output will be:

  data: foo bar

And the contents of test-config.json will be:

  { "foo": "bar" }
  $ node examples/app.js help config
  help:   `app.js config *` commands allow you to edit your
  help:   local app.js configuration file. Valid commands are:
  help:
  help:   app.js config list
  help:   app.js config set    <key> <value>
  help:   app.js config get    <key>
  help:   app.js config delete <key>
  {
    // 
    // Name of the store in `app.config` to use for `config list`. [Default: all config] 
    // 
    store: 'file'
 
    // 
    // Set of properties which cannot be deleted using `config delete <key>` 
    // 
    restricted: ['foo', 'bar'],
 
    // 
    // Set of functions which will execute before named commands: get, set, list, delete 
    // 
    before: { listfunction () { ... } }
  }
  curl http://npmjs.org/install.sh | sh
  [sudo] npm install flatiron-cli-config

Tests are written in vows and give complete coverage of all APIs and storage engines.

  $ npm test

Author: Charlie Robbins