Skip to content

Commit 3812fb3

Browse files
committed
Add basic git app class.
1 parent 87663d1 commit 3812fb3

File tree

2 files changed

+49
-8
lines changed

2 files changed

+49
-8
lines changed

coder-apps/common/coderlib/app/app.js

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,15 @@ var App = exports.App = function(name) {
3232
};
3333
}
3434

35+
App.prototype._load = function(data) {
36+
var data = JSON.parse(data);
37+
for (attr in this.metadata) {
38+
39+
if (typeof data[attr] !== 'undefined') {
40+
this.metadata[attr] = data[attr];
41+
}
42+
}
43+
}
3544

3645
var LocalApp = exports.LocalApp = function(name) {
3746
LocalApp.super_.call(this, name);
@@ -46,7 +55,7 @@ var LocalApp = exports.LocalApp = function(name) {
4655
}
4756

4857
util.inherits(LocalApp, App);
49-
LocalApp.appcache = {}
58+
LocalApp.appcache = Object.create(null);
5059
LocalApp.appdir = process.cwd() + "/apps/";
5160

5261
LocalApp.prototype.load = function(callback) {
@@ -59,13 +68,7 @@ LocalApp.prototype.load = function(callback) {
5968
return;
6069
}
6170

62-
var data = JSON.parse(data);
63-
for (attr in self.metadata) {
64-
65-
if (typeof data[attr] !== 'undefined') {
66-
self.metadata[attr] = data[attr];
67-
}
68-
}
71+
self._load(data);
6972

7073
callback(null);
7174
});

coder-apps/common/vcs/app/gitapp.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
var async = require("async");
2+
var Git = require("./git");
3+
var App = coderlib.App;
4+
var LocalApp = coderlib.LocalApp;
5+
6+
var GitApp = exports.GitApp = function(name, rev) {
7+
GitApp.super_.call(this, name);
8+
9+
this.revision = rev;
10+
}
11+
12+
util.inherits(GitApp, App);
13+
14+
GitApp.appcache = {}
15+
16+
GitApp.prototype.load = function(callback) {
17+
async.waterfall([
18+
function(callback) {
19+
LocalApp.find(this.name, callback);
20+
},
21+
function(app, callback) {
22+
this.localApp = app;
23+
this.repo = new Git(this.localApp.rootPath);
24+
25+
this.repo.parseCommit(this.revision, callback);
26+
},
27+
function(commit, callback) {
28+
this.tree = commit.tree;
29+
callback(null);
30+
}
31+
], callback);
32+
}
33+
34+
GitApp.prototype.require = function() {
35+
return null;
36+
}
37+
38+

0 commit comments

Comments
 (0)