Feature: Discovers if your app is a svn/git/hg repository and shows metadata about it

This commit is contained in:
Joni Shkurti 2014-10-01 16:28:06 +02:00
parent 6e7dd58c0c
commit da9d518716
3 changed files with 59 additions and 27 deletions

View File

@ -76,6 +76,14 @@ UX.describeTable = function(process) {
{ 'uptime' : (pm2_env.pm_uptime && pm2_env.status == 'online') ? timeSince(pm2_env.pm_uptime) : 0 },
{ 'created at' : created_at }
);
if (pm2_env.versioning) {
table.push({ 'revision control' : pm2_env.versioning.type },
{ 'remote url' : pm2_env.versioning.url },
{ 'last update' : pm2_env.versioning.update_time },
{ 'revision' : pm2_env.versioning.revision },
{ 'comment' : pm2_env.versioning.comment },
{ 'branch' : pm2_env.versioning.branch });
}
console.log(table.toString());
};

View File

@ -9,6 +9,7 @@ var p = path;
var Common = require('./Common');
var cst = require('../constants.js');
var pidusage = require('pidusage');
var vizionar = require('vizionar');
// require('webkit-devtools-agent').start({
// port: 9999,
@ -202,7 +203,7 @@ God.executeApp = function executeApp(env, cb) {
return false;
});
God.notify('online', proc);
God.finalizeProcedure(proc);
console.log('App name:%s id:%s online', proc.pm2_env.name, proc.pm2_env.pm_id);
if (cb) cb(null, clu);
@ -238,7 +239,7 @@ God.executeApp = function executeApp(env, cb) {
console.log('App name:%s id:%s online', proc.pm2_env.name, proc.pm2_env.pm_id);
God.notify('online', proc);
God.finalizeProcedure(proc);
if (cb) return cb(null, proc);
return false;
@ -321,3 +322,27 @@ God.prepareJson = function prepareJson(app, cwd, cb) {
return God.prepare(app, cb);
};
/**
* @method finalizeProcedure
* @param proc {Object}
* @return
*/
God.finalizeProcedure = function finalizeProcedure(proc) {
var current_path = path.dirname(proc.pm2_env.pm_exec_path);
vizionar({folder : current_path}, function recur_path(err, meta){
current_path = path.dirname(current_path);
if (!err) {
proc.pm2_env.versioning = meta;
God.notify('online', proc);
}
else if (err && current_path == '/') {
proc.pm2_env.versioning = null;
God.notify('online', proc);
}
else {
vizionar({folder : current_path}, recur_path);
}
});
}

View File

@ -118,31 +118,30 @@
"pm2": "./bin/pm2"
},
"dependencies": {
"async" : "~0.9.0",
"chalk" : "~0.5.1",
"chokidar" : "0.8.4",
"cli-table" : "0.3.0",
"coffee-script" : "1.8.0",
"colors" : "0.6.2",
"commander" : "2.3.0",
"cron" : "1.0.4",
"debug" : "2.0.0",
"eventemitter2" : "0.4.14",
"json-stringify-safe" : "5.0.0",
"moment" : "~2.8.2",
"nssocket" : "0.5.1",
"pidusage" : "0.1.0",
"axm" : "0.2.4",
"pm2-axon" : "2.0.5",
"pm2-axon-rpc" : "0.3.5",
"pm2-deploy" : "~0.1.0",
"pm2-interface" : "2.0.3",
"pm2-multimeter" : "0.1.2",
"pm2-rpc-fallback" : "3.0.7",
"punt" : "2.2.0",
"uid-number" : "0.0.5"
"async": "~0.9.0",
"axm": "0.2.4",
"chalk": "~0.5.1",
"chokidar": "0.8.4",
"cli-table": "0.3.0",
"coffee-script": "1.8.0",
"colors": "0.6.2",
"commander": "2.3.0",
"cron": "1.0.4",
"debug": "2.0.0",
"eventemitter2": "0.4.14",
"json-stringify-safe": "5.0.0",
"moment": "~2.8.2",
"nssocket": "0.5.1",
"pidusage": "0.1.0",
"pm2-axon": "2.0.5",
"pm2-axon-rpc": "0.3.5",
"pm2-deploy": "~0.1.0",
"pm2-interface": "2.0.3",
"pm2-multimeter": "0.1.2",
"pm2-rpc-fallback": "3.0.7",
"punt": "2.2.0",
"uid-number": "0.0.5",
"vizionar": "^0.1.0"
},
"devDependencies": {
"mocha": "^1.20.1",