c9-core/node_modules/c9/gce.js

44 wiersze
1.2 KiB
JavaScript
Czysty Zwykły widok Historia

2016-06-26 11:53:19 +00:00
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 optionsArray = [];
if (options.parallel) {
optionsArray.push("-P");
}
if (options.cacheOnly) {
optionsArray.push("--cache-only");
}
var gsshCommand = GSSH + " " + optionsArray.join(" ") + " " + pattern + " '" + command + "'";
childProcess.exec(gsshCommand, function (err, stdout) {
return callback(err, stdout);
});
}
module.exports = {
find: findServers,
run: runCommand
}