UNPKG

2.31 kBtext/coffeescriptView Raw
1runner = ->
2 pjson = require('../package.json')
3 version = pjson.version
4 livereload = require './livereload'
5 resolve = require('path').resolve
6 opts = require 'opts'
7 debug = false;
8
9 opts.parse [
10 {
11 short: "v"
12 long: "version"
13 description: "Show the version"
14 required: false
15 callback: ->
16 console.log version
17 process.exit(1)
18 }
19 {
20 short: "p"
21 long: "port"
22 description: "Specify the port"
23 value: true
24 required: false
25 }
26 {
27 short: "x"
28 long: "exclusions"
29 description: "Exclude files by specifying an array of regular expressions. Will be appended to default value which is [/\\.git\//, /\\.svn\//, /\\.hg\//]",
30 required: false,
31 value: true
32 }
33 {
34 short: "d"
35 long: "debug"
36 description: "Additional debugging information",
37 required: false,
38 callback: -> debug = true
39 }
40 {
41 short: "e"
42 long: "exts",
43 description: "An array of extensions you want to observe. An example 'jade scss' (quotes are required). In addition to the defaults (html, css, js, png, gif, jpg, php, php5, py, rb, erb, and \"coffee.\").",
44 required: false,
45 value: true
46 }
47 {
48 short: "u"
49 long: "usepolling"
50 description: "Poll for file system changes. Set this to true to successfully watch files over a network.",
51 required: false,
52 value: true
53 }
54 {
55 short: "w"
56 long: "wait"
57 description: "delay message of file system changes to browser by `delay` milliseconds"
58 required: false
59 value: true
60 }
61 ].reverse(), true
62
63 port = opts.get('port') || 35729
64 exclusions = if opts.get('exclusions') then opts.get('exclusions' ).split(',' ).map((s) -> new RegExp(s)) else []
65 exts = (opts.get('exts') || '').split ' '
66 usePolling = opts.get('usepolling') || false
67 wait = opts.get('wait') || 0;
68
69 server = livereload.createServer({
70 port: port
71 debug: debug
72 exclusions: exclusions,
73 exts: exts
74 usePolling: usePolling
75 delay: wait
76 })
77
78 path = (process.argv[2] || '.')
79 .split(/\s*,\s*/)
80 .map((x)->resolve(x))
81 console.log "Starting LiveReload v#{version} for #{path} on port #{port}."
82 server.watch(path)
83
84module.exports =
85 run: runner