Skip to content

Commit 2ae8905

Browse files
committed
fix: Add cli argument parsing
This also adds the -a/--adapter option to the cli.
1 parent 6f9bb68 commit 2ae8905

File tree

3 files changed

+501
-18
lines changed

3 files changed

+501
-18
lines changed

package.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,24 @@
1515
"node": ">=6.0.0"
1616
},
1717
"scripts": {
18-
"start": "micro dist/index.js",
18+
"start": "node dist/index.js",
1919
"build": "./node_modules/.bin/async-to-gen src --out-dir dist",
2020
"prepublish": "npm run build",
21-
"dev": "NODE_ENV=development nodemon --config package.json src/index.js",
21+
"dev": "NODE_ENV=development nodemon --config package.json --exec async-node src/index.js",
2222
"test": "jest"
2323
},
2424
"author": "Max Stoiber <[email protected]> (http://mxstbr.com/)",
2525
"license": "MIT",
2626
"repository": "https://github.com/mxstbr/micro-analytics",
2727
"dependencies": {
28+
"args": "^2.3.0",
2829
"flat-file-db": "^1.0.0",
2930
"micro": "6.1.0",
3031
"micro-analytics-adapter-flat-file-db": "^1.0.3",
3132
"promise": "^7.1.1",
3233
"shelljs": "^0.7.6",
33-
"update-notifier": "^1.0.3",
3434
"sse": "0.0.6",
35+
"update-notifier": "^1.0.3",
3536
"zen-observable": "^0.4.0"
3637
},
3738
"devDependencies": {
@@ -41,6 +42,7 @@
4142
"babel-polyfill": "^6.20.0",
4243
"babel-preset-node6": "^11.0.0",
4344
"jest": "^19.0.2",
45+
"nodemon": "^1.11.0",
4446
"request-promise": "^4.1.1"
4547
},
4648
"execMap": {

src/index.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,28 @@
11
const micro = require('micro')
22
const SSE = require('sse')
3+
const args = require('args');
34

45
const handler = require('./handler')
56
const sseHandler = require('./sse')
67

8+
const flags = args
9+
.option(['p', 'port'], 'Port to listen on', process.env.PORT || 3000, Number)
10+
.option(['H', 'host'], 'Host to listen on', '0.0.0.0')
11+
.option(['a', 'adapter'], 'Database adapter used', process.env.DB_ADAPTER || 'flat-file-db')
12+
.parse(process.argv, { name: 'micro-analytics' })
13+
714
const server = micro(handler)
815
const sse = new SSE(server)
916
sse.on('connection', sseHandler)
1017

11-
server.listen(3000)
18+
server.listen(flags.port, flags.host, (error) => {
19+
if (error) {
20+
console.error(error)
21+
process.exit(1)
22+
}
23+
24+
console.log(
25+
'micro-analytics listening on ' + flags.host + ':' + flags.port + ' with adapter ' +
26+
flags.adapter
27+
)
28+
})

0 commit comments

Comments
 (0)