1 | #!/usr/bin/env node
|
2 | 'use strict'
|
3 |
|
4 | const minimist = require('minimist')
|
5 | const bonjour = require('bonjour')()
|
6 | const casket = require('./lib')
|
7 |
|
8 | const help = `
|
9 | Usage:
|
10 | casket [--name my-little-server] [--dir ~/path/to/dir]
|
11 |
|
12 | Options:
|
13 | --name -n The name of the server, as shown in the GUI.
|
14 | --dir -d The directory to serve, default is the current directory.
|
15 | --readonly -r Do not allow deletion of files & uploads.
|
16 | --port -p Default is 8000.
|
17 |
|
18 | `
|
19 |
|
20 |
|
21 |
|
22 | const argv = minimist(process.argv.slice(2))
|
23 |
|
24 | if (argv.help || argv.h) {
|
25 | process.stdout.write(help)
|
26 | process.exit(0)
|
27 | }
|
28 |
|
29 | const name = argv.name || argv.n || 'casket'
|
30 | const port = +(argv.port || argv.p || process.env.PORT || 8000)
|
31 |
|
32 |
|
33 |
|
34 | const app = casket({
|
35 | name
|
36 | , root: argv.dir || argv.d || process.cwd()
|
37 | , readonly: argv.readonly || argv.r || false
|
38 | })
|
39 | app.listen(port)
|
40 |
|
41 | const service = bonjour.publish({name, type: 'http', port})
|
42 | process.on('beforeExit', () => bonjour.unpublishAll())
|