-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathNodeExecDomain.js
83 lines (73 loc) · 2.86 KB
/
NodeExecDomain.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
/*
* Copyright (c) 2013 Soulberto Lorenzo <slorenzot@gmail.com>
*
* Licensed under MIT
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
* brackets-jscompressor - a brackets plugin to run scripts
*/
/*jslint vars: true, plusplus: true, devel: true, nomen: true, indent: 4, maxerr: 50 */
/*global exports, require */
(function () {
"use strict";
var process = require('child_process'),
domainManager = null,
childproc = null,
startDate = null;
function runScript(command, args, options) {
startDate = new Date();
childproc = process.exec(command, options,
function (err, stdout, stderr) {
var resultobj = {
'error' : err,
'stdout' : stdout,
'stderr' : stderr,
'command' : command,
'cwd': options.cwd,
'title' : command,
'exitcode' : childproc.exitCode,
'time' : (new Date() - startDate) / 1000
};
var resultstr = JSON.stringify(resultobj);
domainManager.emitEvent("nodeexec", "update", resultstr);
});
}
function init(DomainManager) {
domainManager = DomainManager;
if (!domainManager.hasDomain("nodeexec")) {
domainManager.registerDomain("nodeexec", { major: 0, minor: 1 });
}
domainManager.registerCommand(
"nodeexec",
"runScript",
runScript,
false,
"Runs nodeexec test on a file",
["command", "args", "options"],
[]
);
domainManager.registerEvent(
"nodeexec",
"update",
["data"]
);
}
exports.init = init;
}());