allow configuring setting file names from url

pull/402/head
nightwing 2017-02-20 00:52:45 +04:00
rodzic 560d18d31d
commit fd2334b14b
3 zmienionych plików z 50 dodań i 45 usunięć

Wyświetl plik

@ -33,7 +33,7 @@ define(function(require, exports, module) {
var resetSettings = options.reset || c9.location.match(/reset=([\w\|]*)/) && RegExp.$1;
var develMode = c9.location.indexOf("devel=1") > -1;
var debugMode = c9.location.indexOf("debug=2") > -1;
var debugMode = c9.location.indexOf("debug=2") > -1;
var testing = options.testing;
var debug = options.debug;
@ -56,6 +56,13 @@ define(function(require, exports, module) {
var diff = 0; // TODO should we allow this to be undefined and get NaN in timestamps?
var userData;
var skipCloud = {};
c9.location.replace(/[&?](state|project|user)=([\w]+)/g, function(_, type, val) {
if (!val) return;
PATH[type] = PATH[type].replace(/.settings$/, function() { return "." + val + ".settings"; });
skipCloud[type] = true;
});
var inited = false;
function loadSettings(json) {
if (!json) {
@ -71,40 +78,36 @@ define(function(require, exports, module) {
for (var type in json) {
if (typeof json[type] == "string") {
if (json[type].charAt(0) == "<") {
try {
json[type] = JSON.parse(json[type]);
} catch (e) {
json[type] = TEMPLATE[type];
}
else {
try {
json[type] = JSON.parse(json[type]);
} catch (e) {
json[type] = TEMPLATE[type];
}
}
}
}
}
if (!json) {
var info = {};
var count = KEYS.length;
KEYS.forEach(function(type) {
fs.readFile(PATH[type], function(err, data) {
try {
info[type] = err ? {} : JSON.parse(data);
} catch (e) {
console.error("Invalid Settings Read for ",
type, ": ", data);
info[type] = {};
}
if (--count === 0)
loadSettings(info);
});
var count = KEYS.length;
KEYS.forEach(function(type) {
if (!skipCloud[type] && json)
return --count;
fs.readFile(PATH[type], function(err, data) {
if (!json) json = {};
try {
json[type] = err ? {} : JSON.parse(data);
} catch (e) {
console.error("Invalid Settings Read for ",
type, ": ", data);
json[type] = {};
}
if (--count === 0)
loadSettings(json);
});
});
if (count > 0)
return;
}
}
read(json);
@ -192,7 +195,7 @@ define(function(require, exports, module) {
if (standalone || type == "project") {
fs.writeFile(PATH[type], json, forceSync, function(err) {});
if (standalone && !saveToCloud[type])
if (standalone && !saveToCloud[type] || skipCloud[type])
return; // We're done
}

Wyświetl plik

@ -103,6 +103,7 @@
function done(){
var vfs = app.services.vfs;
var c9 = app.services.c9;
var settings = app.services.settings;
c9.ready();
c9.totalLoadTime = Date.now() - start;
@ -110,13 +111,13 @@
console.warn("Total Load Time: ", Date.now() - start);
if (window.hideLoader) {
if (vfs.connected)
window.hideLoader();
else {
vfs.once("connect", function(){
window.hideLoader();
});
}
var waitVfs = function(fn) {
vfs.connected ? fn() : vfs.once("connect", fn);
};
var waitSettings = function(fn) {
settings.inited ? fn() : settings.once("read", fn);
};
waitVfs(waitSettings.bind(null, window.hideLoader));
}
}
}, function loadError(mod) {

Wyświetl plik

@ -148,7 +148,7 @@
app.lut[(options.packagePath || "").replace(/^.*\/home\/.c9\//, "")] = options;
});
app.on("ready", function(){
app.on("ready", function() {
if (app.services.configure)
app.services.configure.services = app.services;
@ -165,9 +165,10 @@
});
// For Development only
function done(){
function done() {
var vfs = app.services.vfs;
var c9 = app.services.c9;
var settings = app.services.settings;
c9.ready();
c9.totalLoadTime = Date.now() - start;
@ -175,13 +176,13 @@
console.warn("Total Load Time: ", Date.now() - start);
if (window.hideLoader) {
if (vfs.connected)
window.hideLoader();
else {
vfs.once("connect", function(){
window.hideLoader();
});
}
var waitVfs = function(fn) {
vfs.connected ? fn() : vfs.once("connect", fn);
};
var waitSettings = function(fn) {
settings.inited ? fn() : settings.once("read", fn);
};
waitVfs(waitSettings.bind(null, window.hideLoader));
}
}
}, function loadError(mod) {