diff --git a/node_modules/architect-build/build_support/mini_require.js b/node_modules/architect-build/build_support/mini_require.js index 19147352..f3787bb8 100644 --- a/node_modules/architect-build/build_support/mini_require.js +++ b/node_modules/architect-build/build_support/mini_require.js @@ -393,8 +393,6 @@ var loadScriptWithTag = function(path, id, callback) { if (path.lastIndexOf(require.MODULE_LOAD_URL, 0) == 0 && path[0] != "/") s.crossOrigin = true; - head.appendChild(s); - s.onload = s.onreadystatechange = function(_, isAbort) { if (isAbort || !s.readyState || s.readyState == "loaded" || s.readyState == "complete") { s = s.onload = s.onreadystatechange = null; @@ -409,6 +407,7 @@ var loadScriptWithTag = function(path, id, callback) { path: path }); }; + head.appendChild(s); }; function loadText(path, cb) { @@ -468,6 +467,9 @@ var loadCached = function(path, cb) { } }); } + if (!ideCache && !ideCachePromiss) { + checkCache(); + } if (ideCachePromiss) { return ideCachePromiss.then(function(i) { if (i) ideCache = i; @@ -494,7 +496,10 @@ var ideCache; var ideCachePromiss; function checkCache() { var baseUrl; - ideCachePromiss = config.useCache && window.caches.open("ide").then(function(ideCache_) { + ideCachePromiss = config.useCache && window.caches.open("ide").catch(function(e) { + console.error(e); + config.useCache = ideCachePromiss = ideCache = null; + }).then(function(ideCache_) { ideCache = ideCache_; return ideCache.keys(); }).then(function(keys) { @@ -557,7 +562,7 @@ require.clearCache = function(callback) { callback && callback(e); }); }); -} +}; function post(path, val, progress, cb) { var xhr = new window.XMLHttpRequest(); diff --git a/plugins/c9.cli.bridge/bridge-service.js b/plugins/c9.cli.bridge/bridge-service.js index d4ef726c..6e399872 100644 --- a/plugins/c9.cli.bridge/bridge-service.js +++ b/plugins/c9.cli.bridge/bridge-service.js @@ -3,6 +3,7 @@ module.exports = function (vfs, options, register) { var net = require("net"); var Stream = require('stream'); + var path = require("path"); var SOCKET = process.platform == "win32" ? "\\\\.\\pipe\\.c9\\bridge.socket" @@ -74,7 +75,6 @@ module.exports = function (vfs, options, register) { clients.push(client); } - api var clients = []; var stream = new Stream(); stream.readable = true; @@ -89,10 +89,17 @@ module.exports = function (vfs, options, register) { var unixServer = net.createServer(registerClient); unixServer.listen(SOCKET); + var socketDirExists = false; unixServer.on("error", function(err){ if (err.code == "EADDRINUSE") { createListenClient(api); } + else if (err.code == "EACCES" && !socketDirExists) { + vfs.mkdirP(path.dirname(SOCKET), {}, function() { + socketDirExists = true; + unixServer.listen(SOCKET); + }); + } else api.onError(err); });