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 |
|
17 | `
|
18 |
|
19 |
|
20 |
|
21 | const argv = minimist(process.argv.slice(2))
|
22 |
|
23 | if (argv.help || argv.h) {
|
24 | process.stdout.write(help)
|
25 | process.exit(0)
|
26 | }
|
27 |
|
28 | const name = argv.name || argv.n || 'casket'
|
29 | const port = +(argv.port || argv.p || process.env.PORT || 8000)
|
30 |
|
31 |
|
32 |
|
33 | const app = casket({
|
34 | name
|
35 | , root: argv.dir || argv.d || process.cwd()
|
36 | , readonly: argv.readonly || argv.r || false
|
37 | })
|
38 | app.listen(port)
|
39 |
|
40 | const service = bonjour.publish({name, type: 'http', port})
|
41 | process.on('beforeExit', () => bonjour.unpublishAll())
|