UNPKG

wiki-server

Version:

A Federated Wiki Server

102 lines (94 loc) 2.59 kB
# **cli.coffee** command line interface for the # Smallest-Federated-Wiki express server path = require 'path' optimist = require 'optimist' server = require './server' bouncy = require 'bouncy' farm = require './farm' cc = require 'config-chain' getUserHome = -> process.env.HOME or process.env.HOMEPATH or process.env.USERPROFILE # Handle command line options argv = optimist .usage('Usage: $0') .options('url', alias : 'u' describe : 'Important: Your server URL, used as Persona audience during verification' ) .options('port', alias : 'p' describe : 'Port' ) .options('data', alias : 'd' describe : 'location of flat file data' ) .options('root', alias : 'r' describe : 'Application root folder' ) .options('farm', alias : 'f' describe : 'Turn on the farm?' ) .options('farmPort', alias : 'F' describe : 'Port to start farm servers on.' ) .options('home', describe : 'The page to go to instead of index.html' ) .options('host', alias : 'o' describe : 'Host to accept connections on, falsy == any' ) .options('id', describe : 'Set the location of the open id file' ) .options('database', describe : 'JSON object for database config' ) .options('test', boolean : true describe : 'Set server to work with the rspec integration tests' ) .options('help', alias : 'h' boolean : true describe : 'Show this help info and exit' ) .options('config', alias : 'conf' describe : 'Optional config file.' ) .options('version', alias : 'v' describe : 'Optional config file.' ) .argv config = cc(argv, argv.config, 'config.json', path.join(__dirname, '..', 'config.json'), cc.env('wiki_'), farmPort: 40000 port: 3000 root: path.join(__dirname, '..') home: 'welcome-visitors' data: path.join(getUserHome(), '.wiki') # see also defaultargs ).store # If h/help is set print the generated help message and exit. if argv.help optimist.showHelp() else if argv.version console.log('wiki version: ' + require('../package').version) # If f/farm is set call../lib/farm.coffee with argv object, else call # ../lib/server.coffee with argv object. else if argv.test console.log "WARNING: Server started in testing mode, other options ignored" server({port: 33333, data: path.join(argv.root, 'spec', 'data')}) else if config.farm console.log('Wiki starting in Farm mode, navigate to a specific server to sart it.') farm(config) else server(config)