c9-core/node_modules/c9/gce.js

41 wiersze
1.1 KiB
JavaScript

var childProcess = require("child_process");
var GSSH = __dirname + "/../../scripts/gssh";
function findServers(pattern, options, callback) {
if (!callback && typeof options == "function") {
return findServers(pattern, {}, options);
}
childProcess.exec(GSSH + " --print-names " + pattern, function (err, stdout) {
if (err) return callback(err);
var serverNames = stdout.split("\n")
.filter(function(name) { return !!name; })
.map(function (name) { return name.replace(/ubuntu@/, ""); });
return callback(null, serverNames);
});
}
function runCommand(pattern, command, options, callback) {
if (!callback && typeof options == "function") {
return runCommand(pattern, command, {}, options);
}
var parallel = ""
if (options.parallel) {
parallel = " -P"
}
var gsshCommand = GSSH + " " + parallel + " " + pattern + " '" + command + "'";
childProcess.exec(gsshCommand, function (err, stdout) {
return callback(err, stdout);
});
}
module.exports = {
find: findServers,
run: runCommand
}