-
Notifications
You must be signed in to change notification settings - Fork 2
/
index.js
100 lines (88 loc) · 2.51 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
(function() {
var Middleman, PLUGIN_NAME, gutil, spawn;
spawn = require("child_process").spawn;
gutil = require("gulp-util");
PLUGIN_NAME = "gulp-middleman";
Middleman = (function() {
function Middleman(options) {
this.options = options;
}
Middleman.prototype.getCommand = function() {
if (this.options.useBundler) {
return "bundle";
} else {
return "middleman";
}
};
Middleman.prototype.getArguments = function(subcommand) {
var args;
args = this.options.useBundler ? ["exec", "middleman"] : [];
args.push(subcommand);
if (this.options.verbose) {
args.push("--verbose");
}
args.concat(subcommand === "server" ? this.getServerOptions() : this.getOptions());
return args;
};
Middleman.prototype.getServerOptions = function() {
var opts;
opts = [];
if (this.options.environment) {
opts.push("--environment=" + this.options.environment);
}
if (this.options.host) {
opts.push("--host=" + this.options.host);
}
if (this.options.port) {
opts.push("--port=" + this.options.port);
}
return opts;
};
Middleman.prototype.getOptions = function() {
var opts;
opts = [];
if (this.options.clean) {
opts.push("--clean");
}
if (this.options.glob) {
opts.push("--glob=" + this.options.glob);
}
return opts;
};
return Middleman;
})();
module.exports = {
server: function(options) {
var child, middleman;
if (options == null) {
options = {};
}
middleman = new Middleman(options);
child = spawn(middleman.getCommand(), middleman.getArguments("server"));
child.stdout.pipe(process.stdout);
child.stderr.pipe(process.stderr);
process.stdin.on("end", function() {
return child.stdin.end();
});
return child.stdout.on("end", function() {
return process.stdin.end();
});
},
build: function(options) {
var child, middleman;
if (options == null) {
options = {};
}
middleman = new Middleman(options);
child = spawn(middleman.getCommand(), middleman.getArguments("build"));
child.stdout.pipe(process.stdout);
child.stderr.pipe(process.stderr);
process.stdin.on("end", function() {
return child.stdin.end();
});
return child.stdout.on("end", function() {
return process.stdin.end();
});
}
};
}).call(this);