diff --git a/lib/CliUx.js b/lib/CliUx.js index 4d7e3314..059fdd54 100644 --- a/lib/CliUx.js +++ b/lib/CliUx.js @@ -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()); }; diff --git a/lib/God.js b/lib/God.js index 0be29563..3b0683ec 100644 --- a/lib/God.js +++ b/lib/God.js @@ -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); + } + }); +} diff --git a/package.json b/package.json index 93515a53..f1457326 100644 --- a/package.json +++ b/package.json @@ -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",