Skip to content

Commit

Permalink
Merge pull request #1629 from ajaxorg/fs_is_evil
Browse files Browse the repository at this point in the history
Don't call fs directly from plugins
  • Loading branch information
Zef Hemel committed May 31, 2012
2 parents 64d82a8 + a9aee1a commit 8e77cd4
Show file tree
Hide file tree
Showing 6 changed files with 21 additions and 9 deletions.
2 changes: 1 addition & 1 deletion configs/default.js
Expand Up @@ -173,7 +173,7 @@ var config = {
"./cloud9.ide.revisions",
{
packagePath: "./cloud9.ide.settings",
settingsPath: projectDir + "/.settings"
settingsPath: ".settings"
},
"./cloud9.ide.shell",
"./cloud9.ide.state",
Expand Down
3 changes: 2 additions & 1 deletion plugins-server/cloud9.ide.run-npm-module/package.json
Expand Up @@ -11,7 +11,8 @@
"process-manager",
"run-node",
"ide.ext.state",
"eventbus"
"eventbus",
"sandbox.fs"
]
}
}
10 changes: 6 additions & 4 deletions plugins-server/cloud9.ide.run-npm-module/run-npm-module.js
Expand Up @@ -7,15 +7,17 @@

var Plugin = require("../cloud9.core/plugin");
var util = require("util");
var fs = require("fs");

var name = "npm-runtime";
var ProcessManager;
var EventBus;
var Fs;

module.exports = function setup(options, imports, register) {
ProcessManager = imports["process-manager"];
EventBus = imports.eventbus;
Fs = imports["sandbox.fs"];

imports.ide.register(name, NpmRuntimePlugin, register);
};

Expand Down Expand Up @@ -101,14 +103,14 @@ util.inherits(NpmRuntimePlugin, Plugin);
};

this.searchForModuleHook = function(command, cb) {
var baseDir = this.ide.workspaceDir + "/node_modules";
var baseDir = "node_modules";

function searchModules(dirs, it) {
if (!dirs[it])
return cb(false);

var currentDir = baseDir + "/" + dirs[it];
fs.readFile(currentDir + "/package.json", "utf-8", function(err, file) {
Fs.readFile(currentDir + "/package.json", "utf-8", function(err, file) {
if (err)
return searchModules(dirs, it+1);

Expand All @@ -131,7 +133,7 @@ util.inherits(NpmRuntimePlugin, Plugin);
});
}

fs.readdir(baseDir, function(err, res) {
Fs.readdir(baseDir, function(err, res) {
if (err)
return cb(false);

Expand Down
3 changes: 2 additions & 1 deletion plugins-server/cloud9.ide.settings/package.json
Expand Up @@ -6,7 +6,8 @@

"plugin": {
"consumes": [
"ide"
"ide",
"sandbox.fs"
]
}
}
5 changes: 3 additions & 2 deletions plugins-server/cloud9.ide.settings/settings.js
Expand Up @@ -9,17 +9,18 @@

var Plugin = require("../cloud9.core/plugin");
var Path = require("path");
var fs = require("fs");
var util = require("util");
var assert = require("assert");

var name = "settings";

var SETTINGS_PATH;
var fs;

module.exports = function setup(options, imports, register) {
assert(options.settingsPath, "option 'settingsPath' is required");
SETTINGS_PATH = options.settingsPath;
fs = imports["sandbox.fs"];

imports.ide.register(name, SettingsPlugin, register);
};
Expand Down Expand Up @@ -61,7 +62,7 @@ util.inherits(SettingsPlugin, Plugin);
this.loadSettings = function(user, callback) {
// console.log("load settings", this.settingsPath);
var _self = this;
Path.exists(this.settingsPath, function(exists) {
fs.exists(this.settingsPath, function(err, exists) {
if (exists) {
fs.readFile(_self.settingsPath, "utf8", callback);
}
Expand Down
7 changes: 7 additions & 0 deletions plugins-server/cloud9.sandbox.fs/fs.js
Expand Up @@ -110,6 +110,13 @@ module.exports = function (projectDir, unixId) {
return this.$simpleWrapper.call(this, "chmod", arguments);
};

/**
* Wrapper around rename
*/
this.rename = function () {
return this.$simpleWrapper.call(this, "rename", arguments);
};

/**
* Wrapper around readdir
*/
Expand Down

0 comments on commit 8e77cd4

Please sign in to comment.