UNPKG

2.81 kBJavaScriptView Raw
1// Generated by CoffeeScript 1.12.4
2(function() {
3 var runner;
4
5 runner = function() {
6 var debug, exclusions, exts, livereload, opts, path, pjson, port, resolve, server, usePolling, version, wait;
7 pjson = require('../package.json');
8 version = pjson.version;
9 livereload = require('./livereload');
10 resolve = require('path').resolve;
11 opts = require('opts');
12 debug = false;
13 opts.parse([
14 {
15 short: "v",
16 long: "version",
17 description: "Show the version",
18 required: false,
19 callback: function() {
20 console.log(version);
21 return process.exit(1);
22 }
23 }, {
24 short: "p",
25 long: "port",
26 description: "Specify the port",
27 value: true,
28 required: false
29 }, {
30 short: "x",
31 long: "exclusions",
32 description: "Exclude files by specifying an array of regular expressions. Will be appended to default value which is [/\.git\//, /\.svn\//, /\.hg\//]",
33 required: false,
34 value: true
35 }, {
36 short: "d",
37 long: "debug",
38 description: "Additional debugging information",
39 required: false,
40 callback: function() {
41 return debug = true;
42 }
43 }, {
44 short: "e",
45 long: "exts",
46 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.\").",
47 required: false,
48 value: true
49 }, {
50 short: "u",
51 long: "usepolling",
52 description: "Poll for file system changes. Set this to true to successfully watch files over a network.",
53 required: false,
54 value: true
55 }, {
56 short: "w",
57 long: "wait",
58 description: "delay message of file system changes to browser by `delay` milliseconds",
59 required: false,
60 value: true
61 }
62 ].reverse(), true);
63 port = opts.get('port') || 35729;
64 exclusions = opts.get('exclusions') ? opts.get('exclusions').split(',').map(function(s) {
65 return new RegExp(s);
66 }) : [];
67 exts = opts.get('exts') ? opts.get('exts').split(',') : [];
68 usePolling = opts.get('usepolling') || false;
69 wait = opts.get('wait') || 0;
70 server = livereload.createServer({
71 port: port,
72 debug: debug,
73 exclusions: exclusions,
74 exts: exts,
75 usePolling: usePolling,
76 delay: wait
77 });
78 path = (process.argv[2] || '.').split(/\s*,\s*/).map(function(x) {
79 return resolve(x);
80 });
81 console.log("Starting LiveReload v" + version + " for " + path + " on port " + port + ".");
82 return server.watch(path);
83 };
84
85 module.exports = {
86 run: runner
87 };
88
89}).call(this);