UNPKG

1.19 kBJavaScriptView Raw
1#! /usr/bin/env node
2require('dotenv').config({silent: true});
3
4var _ = require('lodash');
5
6var fs = require('fs');
7var path = require('path');
8var cli = require('commander');
9var express = require('express');
10
11var api = require('../lib/api');
12
13cli
14 .usage('[options]')
15 .option('-C, --chdir <path>', 'change the working directory')
16 .option('-c, --config <path>', 'set config path. defaults to ./youbase.json', './youbase.json')
17 .option('-h, --host [host]', 'api listens on [host]. defaults to localhost', 'localhost')
18 .option('-p, --port [port]', 'api listens on [port]')
19 .parse(process.argv)
20
21if (cli.chdir) { process.chdir(cli.chdir); }
22
23configPath = path.join(process.cwd(), cli.config);
24
25var config = {
26 host: process.env.YOUBASE_HOST,
27 port: (process.env.YOUBASE_PORT || process.env.PORT)
28};
29
30fs.access(configPath, fs.F_OK, function(err) {
31 if (!err) { _.defaults(config, require(configPath)); }
32
33 var port = cli.port || config.port || 9090
34 var host = cli.host || config.host || 'localhost'
35
36 var app = express()
37
38 var server = app.listen(port, function () {
39 console.log('YouBase api listening at http://%s:%s', host, port)
40 });
41
42 api(app, config);
43});
44
45
46
47