2016-12-01 12:34:31 +00:00
|
|
|
require("amd-loader");
|
2016-06-26 11:53:19 +00:00
|
|
|
module.exports = function(options) {
|
|
|
|
|
|
|
|
// workaround for api difference between node and c9 events modules
|
|
|
|
var EventEmitter = require("../plugins/c9.nodeapi/events").EventEmitter;
|
|
|
|
var Module = require("module");
|
|
|
|
var _resolveFilename_orig = Module._resolveFilename
|
|
|
|
Module._resolveFilename = function(id, parent) {
|
|
|
|
if (id == "events" && parent && /c9.core[\\/]ext\.js/.test(parent.id))
|
|
|
|
id = "../c9.nodeapi/events";
|
|
|
|
return _resolveFilename_orig.call(Module, id, parent);
|
|
|
|
};
|
|
|
|
|
|
|
|
var PID = process.env.C9_PID || 526;
|
|
|
|
var APIHOST = process.env.C9_APIHOST || "api.c9.io"; // "api.c9.io";
|
|
|
|
var APIURL = APIHOST.indexOf("localhost") > -1
|
|
|
|
? "http://" + APIHOST
|
|
|
|
: "https://" + APIHOST;
|
|
|
|
var AUTHURL = APIHOST.indexOf("localhost") > -1
|
|
|
|
? "http://" + APIHOST
|
|
|
|
: "https://" + APIHOST.replace(/api\./, "");
|
|
|
|
|
|
|
|
return [
|
|
|
|
"./c9.core/ext",
|
|
|
|
{
|
|
|
|
packagePath: "./c9.fs/fs",
|
|
|
|
baseProc: process.cwd(),
|
|
|
|
cli: true
|
|
|
|
},
|
|
|
|
{
|
|
|
|
packagePath: "./c9.fs/net"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
packagePath: "./c9.fs/proc",
|
|
|
|
baseProc: process.cwd()
|
|
|
|
},
|
|
|
|
"./c9.vfs.client/vfs.cli",
|
|
|
|
"./c9.cli/cli",
|
|
|
|
{
|
|
|
|
packagePath: "./c9.cli/auth.bootstrap",
|
|
|
|
authUrl: AUTHURL
|
|
|
|
},
|
|
|
|
{
|
|
|
|
packagePath: "./c9.cli.publish/publish",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
packagePath: "./c9.ide.auth/auth",
|
|
|
|
accessToken: "token",
|
|
|
|
ideBaseUrl: "",
|
|
|
|
apiUrl: APIURL,
|
|
|
|
cli: true
|
|
|
|
// userId: process.env.C9_USER
|
|
|
|
},
|
|
|
|
{
|
|
|
|
packagePath: "./c9.core/api",
|
|
|
|
apiUrl: APIURL,
|
|
|
|
projectId: PID
|
|
|
|
},
|
|
|
|
{
|
|
|
|
packagePath: "./c9.core/http-node"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
packagePath: "./c9.cli.bridge/bridge-client",
|
|
|
|
port: 17123
|
|
|
|
},
|
|
|
|
{
|
|
|
|
packagePath: "./c9.cli.open/open",
|
|
|
|
platform: process.platform
|
|
|
|
},
|
|
|
|
{
|
|
|
|
packagePath: "./c9.cli.exec/exec",
|
|
|
|
platform: process.platform
|
|
|
|
},
|
|
|
|
{
|
|
|
|
packagePath: "./c9.cli.open/restart",
|
|
|
|
platform: process.platform
|
|
|
|
},
|
|
|
|
{
|
|
|
|
consumes: [],
|
2017-04-02 12:12:51 +00:00
|
|
|
provides: ["settings", "cli_commands", "c9", "error_handler"],
|
2016-06-26 11:53:19 +00:00
|
|
|
setup: function(options, imports, register) {
|
|
|
|
register(null, {
|
|
|
|
// @todo share with ace min
|
|
|
|
c9 : {
|
|
|
|
startdate: new Date(),
|
|
|
|
debug: true,
|
|
|
|
hosted: false,
|
|
|
|
local: true,
|
|
|
|
home: process.env.HOME,
|
|
|
|
setStatus: function(){},
|
|
|
|
location: "",
|
|
|
|
platform: process.platform,
|
|
|
|
},
|
|
|
|
error_handler: {
|
|
|
|
log: function(){}
|
|
|
|
},
|
|
|
|
cli_commands: (function(){
|
|
|
|
var cmds = new EventEmitter();
|
|
|
|
var commands = {};
|
|
|
|
cmds.commands = commands;
|
|
|
|
cmds.addCommand = function(def) {
|
|
|
|
commands[def.name] = def;
|
|
|
|
};
|
|
|
|
cmds.exec = function(name, args) {
|
|
|
|
if (!commands[name])
|
|
|
|
throw new Error("Unknown command: " + name);
|
|
|
|
commands[name].exec(args);
|
|
|
|
};
|
|
|
|
return cmds;
|
|
|
|
})(),
|
|
|
|
http: new EventEmitter(),
|
|
|
|
settings: (function(){
|
|
|
|
var settings = new EventEmitter();
|
|
|
|
var data = {};
|
|
|
|
|
|
|
|
settings.migrate = function(){};
|
|
|
|
settings.setDefaults = function(type, def) {
|
|
|
|
var props = {};
|
|
|
|
def.forEach(function(d){ props[d[0]] = d[1] });
|
|
|
|
data[type] = props;
|
|
|
|
};
|
|
|
|
|
|
|
|
settings.getBool = function(p) {
|
|
|
|
return settings.get(p) == "true";
|
|
|
|
};
|
|
|
|
settings.get = function(p) {
|
|
|
|
var type = p.substr(0, p.lastIndexOf("/"));
|
|
|
|
var prop = p.substr(p.lastIndexOf("/") + 2);
|
|
|
|
return data[type] && data[type][prop] || "";
|
|
|
|
};
|
|
|
|
settings.getJson = function(p) {
|
|
|
|
try {
|
|
|
|
return JSON.parse(settings.get(p));
|
|
|
|
}catch(e){ return false }
|
|
|
|
};
|
|
|
|
settings.getNumber = function(p) {
|
|
|
|
return Number(settings.get(p));
|
|
|
|
};
|
|
|
|
|
|
|
|
settings.emit("read");
|
|
|
|
settings.on("newListener", function(event, listener) {
|
|
|
|
if (event == "read") listener();
|
|
|
|
});
|
|
|
|
|
|
|
|
return settings;
|
|
|
|
})(),
|
|
|
|
auth: {
|
|
|
|
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
];
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
if (!module.parent) require("../server")([__filename].concat(process.argv.slice(2)));
|