Comparing version 0.6.9-58 to 0.6.9-63
@@ -20,1 +20,2 @@ exports.login = require('./lib/login.js'); | ||
@@ -16,3 +16,2 @@ // Misc common functions.. | ||
if (er){ | ||
log.error(errorMsg + er); | ||
return cb(er); | ||
@@ -19,0 +18,0 @@ } |
module.exports = logs; | ||
logs.logs = logs; | ||
logs.usage = "\nfhc logs [show] <app-id> [log-name] [--live]" | ||
+"\nfhc logs list <app-id> [--live]"; | ||
logs.usage = "\nfhc logs [get] <app-id> [log-name] [--live]" | ||
+ "\nfhc logs list <app-id> [--live]" | ||
+ "\nfhc logs delete <app-id> <log-name> [--live]"; | ||
@@ -13,2 +14,4 @@ var log = require("./utils/log"); | ||
var fhreq = require("./utils/request"); | ||
var Table = require('cli-table'); | ||
var datejs = require('datejs'); | ||
@@ -19,6 +22,7 @@ // main logs entry point | ||
var target = ini.get('live') ? 'live' : 'development'; | ||
// hack for using as a script, check if the last arg is trying to override target | ||
if (args[args.length -1] === 'live' || args[args.length -1] === 'development') { | ||
target = args[args.length -1]; | ||
args.pop(); | ||
} | ||
@@ -28,7 +32,7 @@ | ||
var action = args[0]; | ||
if (action === "show") { | ||
if (action === "get") { | ||
if (!args[1]) return cb(logs.usage); | ||
var appId = fhc.appId(args[1]); | ||
var logName = args[2]; | ||
return showLogs(appId, logName, target, cb); | ||
return getLogs(appId, logName, target, cb); | ||
} else if (action === "list") { | ||
@@ -38,8 +42,13 @@ if (!args[1]) return cb(logs.usage); | ||
return listLogs(appId, target, cb); | ||
} else { | ||
// assume all params are for show | ||
}else if (action === "delete") { | ||
if (!args[1]) return cb(logs.usage); | ||
if (!args[2]) return cb(logs.usage); | ||
var appId = fhc.appId(args[1]); | ||
return deleteLog(appId, args[2], target, cb); | ||
}else { | ||
// assume all params are for get | ||
var appId = fhc.appId(action); | ||
if(appId.length !== 24) return cb(logs.usage); | ||
var logName = args[1]; | ||
return showLogs(appId, logName, target, cb); | ||
return getLogs(appId, logName, target, cb); | ||
} | ||
@@ -52,13 +61,7 @@ }; | ||
log.verbose(payload, 'Listing logs'); | ||
common.doApiCall(fhreq.getFeedHenryUrl(), "box/srv/1.1/ide/" + fhc.domain + "/app/logs", payload,"Error showing logs: ", function(err, data){ | ||
common.doApiCall(fhreq.getFeedHenryUrl(), "box/srv/1.1/ide/" + fhc.domain + "/app/logs", payload,"Error getting logs: ", function(err, data){ | ||
if(err) return cb(err); | ||
var msg = ""; | ||
for (var i=0; i<data.logs.length; i++) { | ||
var log = data.logs[i]; | ||
msg = msg + log.name + "\n"; | ||
if(ini.get('table') === true) { | ||
createTableForLogs(data.logs); | ||
} | ||
if (data.logs[0]) { | ||
msg = msg + "\nYou can retrieve individual log files by calling 'fhc logs show', e.g. fhc logs show " + appId + " " + data.logs[0].name; | ||
} | ||
logs.message = msg; | ||
return cb(err, data); | ||
@@ -68,6 +71,7 @@ }); | ||
function showLogs (appId, logName, target, cb) { | ||
var payload = {payload:{guid: appId, deploytarget: target, logname: logName, 'action': 'show'}}; | ||
log.verbose(payload, 'Showing logs'); | ||
common.doApiCall(fhreq.getFeedHenryUrl(), "box/srv/1.1/ide/" + fhc.domain + "/app/logs", payload,"Error showing logs: ", function(err, data){ | ||
// get list of log files | ||
function getLogs (appId, logName, target, cb) { | ||
var payload = {payload:{guid: appId, deploytarget: target, logname: logName, 'action': 'get'}}; | ||
log.verbose(payload, 'Getting logs'); | ||
common.doApiCall(fhreq.getFeedHenryUrl(), "box/srv/1.1/ide/" + fhc.domain + "/app/logs", payload, "", function(err, data){ | ||
if(err) return cb(err); | ||
@@ -87,2 +91,40 @@ log.verbose(data, "Response log"); | ||
// delete log file | ||
function deleteLog (appId, logName, target, cb) { | ||
var payload = {payload:{guid: appId, deploytarget: target, action: 'delete', logname: logName}}; | ||
log.verbose(payload, 'Deleting log'); | ||
common.doApiCall(fhreq.getFeedHenryUrl(), "box/srv/1.1/ide/" + fhc.domain + "/app/logs", payload,"Error deleting log: ", function(err, data){ | ||
if(err) return cb(err); | ||
logs.message = JSON.parse(data.msg); | ||
return cb(err, data); | ||
}); | ||
}; | ||
// put our logs into table format.. | ||
function createTableForLogs(logz) { | ||
// calculate widths | ||
var maxName=4, maxSize=4, maxModified=8; | ||
var dateFormat = "ddd MMM dd yyyy hh:mm:ss"; | ||
for (var l in logz) { | ||
var log = logz[l]; | ||
var dt = new Date(log.modified); | ||
if(common.strlen(log.name) > maxName) maxName = common.strlen(log.name); | ||
if(common.strlen(log.size) > maxSize) maxSize = common.strlen(log.size); | ||
if(common.strlen(dt.toString()) > maxModified) maxModified = common.strlen(dt.toString(dateFormat)); | ||
} | ||
// create our table | ||
logs.table = new Table({ | ||
head: ['Name', 'Size', 'Modified'], | ||
colWidths: [maxName +2 , maxSize + 2, maxModified + 2], | ||
style: common.style() | ||
}); | ||
// populate our table | ||
for (var l in logz) { | ||
var log = logz[l]; | ||
logs.table.push([log.name, log.size, new Date(log.modified).toString(dateFormat)]); | ||
} | ||
} | ||
// bash completion | ||
@@ -93,3 +135,3 @@ logs.completion = function (opts, cb) { | ||
if (argv.length === 2) { | ||
var cmds = ["show", "list"]; | ||
var cmds = ["get", "list", "delete"]; | ||
return cb(null, cmds); | ||
@@ -100,3 +142,3 @@ } | ||
switch (action) { | ||
case "show": | ||
case "get": | ||
case "list": | ||
@@ -103,0 +145,0 @@ common.getAppIds(cb); |
@@ -18,3 +18,3 @@ | ||
function stage (args, cb) { | ||
if(args.length > 2 || args.length == 0) return unknown("stage", cb); | ||
if(args.length > 3 || args.length == 0) return unknown("stage", cb); | ||
@@ -21,0 +21,0 @@ var clean = ini.get('clean'); |
@@ -15,3 +15,3 @@ // target millicore | ||
var util = require('util'); | ||
var version = require('./version.js'); | ||
var request = require('request'); | ||
@@ -37,3 +37,3 @@ // Main target entry point | ||
// Valiate FeedHenry target can be pinged.. | ||
version([tar], function(err, data){ | ||
pingTarget([tar], function(err, data){ | ||
if(err) return cb(err); | ||
@@ -82,2 +82,9 @@ if(data.statusCode !== 200) return cb("Invalid target: " +tar); | ||
function pingTarget(targ, callback) { | ||
request(targ + "/box/srv/1.1/act/sys/auth/logout", function(err, response, body){ | ||
if(err) return callback(err); | ||
return callback(err, {statusCode: response.statusCode, data: body}); | ||
}); | ||
}; | ||
// bash completion | ||
@@ -84,0 +91,0 @@ target.completion = function (opts, cb) { |
@@ -42,3 +42,3 @@ // defaults, types, and shorthands. | ||
// are there others? | ||
, browser : process.platform === "darwin" ? "open" : "chromium-browser" | ||
, browser : process.platform === "darwin" ? "open" : "google-chrome" | ||
, clean : false | ||
@@ -45,0 +45,0 @@ , color : true |
@@ -31,17 +31,17 @@ // Create a chain of config objects, in this priority order: | ||
var fs = require("fs") | ||
, path = require("path") | ||
, sys = require("./sys") | ||
, crypto = require("crypto") | ||
, util = require("util") | ||
, privateKey = null | ||
, chain = require("./chain") | ||
, log = require("./log") | ||
, ini = require("./ini-parser") | ||
, ProtoList = require("./proto-list") | ||
, defaultConfig | ||
, configList = new ProtoList() | ||
, configDefs = require("./config-defs") | ||
, types = configDefs.types | ||
, TRANS = exports.TRANS = | ||
var fs = require("fs"); | ||
var path = require("path"); | ||
var sys = require("./sys"); | ||
var crypto = require("crypto"); | ||
var util = require("util"); | ||
var privateKey = null; | ||
var chain = require("./chain"); | ||
var log = require("./log"); | ||
var ini = require("./ini-parser"); | ||
var ProtoList = require("./proto-list"); | ||
var defaultConfig; | ||
var configList = new ProtoList(); | ||
var configDefs = require("./config-defs"); | ||
var types = configDefs.types; | ||
var TRANS = exports.TRANS = | ||
{ "default" : 4 | ||
@@ -48,0 +48,0 @@ , "global" : 3 |
@@ -185,3 +185,3 @@ | ||
} else { | ||
er = new Error(parsed.error + " " + (parsed.reason || "") + ": " + w); | ||
er = parsed.error + " " + (parsed.reason || ""); | ||
} | ||
@@ -188,0 +188,0 @@ } else if (method !== "HEAD" && method !== "GET") { |
@@ -5,3 +5,3 @@ { | ||
"keywords" : [ "cli", "feedhenry" ], | ||
"version": "0.6.9-58", | ||
"version": "0.6.9-63", | ||
"preferGlobal" : true, | ||
@@ -28,3 +28,4 @@ "homepage" : "http://git.io/fh-fhc", | ||
"findit" : "*", | ||
"cli-table" : "*" | ||
"cli-table" : "*", | ||
"datejs" : "*" | ||
}, | ||
@@ -31,0 +32,0 @@ "devDependencies" : { |
@@ -1,1 +0,1 @@ | ||
0.6.9-58 | ||
0.6.9-63 |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Wildcard dependency
QualityPackage has a dependency with a floating version range. This can cause issues if the dependency publishes a new major version.
Found 1 instance in 1 package
224180
5973
9
8
+ Addeddatejs@*
+ Addedbalanced-match@1.0.2(transitive)
+ Addedbrace-expansion@1.1.11(transitive)
+ Addedconcat-map@0.0.1(transitive)
+ Addeddatejs@0.0.2(transitive)
+ Addeddiff@4.0.2(transitive)
+ Addedeyes@0.1.8(transitive)
+ Addedfs.realpath@1.0.0(transitive)
+ Addedglob@7.2.3(transitive)
+ Addedinflight@1.0.6(transitive)
+ Addedinherits@2.0.4(transitive)
+ Addedminimatch@3.1.2(transitive)
+ Addedonce@1.4.0(transitive)
+ Addedpath-is-absolute@1.0.1(transitive)
+ Addedvows@0.8.3(transitive)
+ Addedwrappy@1.0.2(transitive)