Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

fh-fhc

Package Overview
Dependencies
Maintainers
2
Versions
121
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fh-fhc - npm Package Compare versions

Comparing version 0.7.30-193 to 0.7.31-195

lib/env.js

1

fh-fhc.js

@@ -47,4 +47,5 @@ exports.login = require('./lib/login.js');

exports.restart = require('./lib/restart.js');
exports.env = require('./lib/env.js');

@@ -188,2 +188,50 @@ // Misc common functions..

exports.createTableForAppEnvVars = function(appEnvVars, envValue){
var maxId=24, maxTS = 20, maxName = 25, maxDevValue = 25, maxLiveValue = 25;
for(var i=0;i<appEnvVars.length;i++){
var appEnvVar = appEnvVars[i].fields;
if(strlen(appEnvVar.name) > maxName) maxName = strlen(appEnvVar.name);
if(strlen(appEnvVar.devValue) > maxDevValue) maxDevValue = strlen(appEnvVar.devValue);
if(strlen(appEnvVar.liveValue) > maxLiveValue) maxLiveValue = strlen(appEnvVar.liveValue);
}
if(maxName > exports.maxTableCell) maxName = exports.maxTableCell;
if(maxDevValue > exports.maxTableCell) maxDevValue = exports.maxTableCell;
if(maxLiveValue > exports.maxTableCell) maxLiveValue = exports.maxTableCell;
var tableHeaders = ['Guid', 'Modified', 'Name'];
var tableColWidths = [maxId+2, maxTS+2, maxName+2];
if(!envValue){
tableHeaders.push("Dev Value");
tableHeaders.push("Live Value");
tableColWidths.push(maxDevValue+2);
tableColWidths.push(maxLiveValue+2);
} else {
if("dev" === envValue){
tableHeaders.push("Dev Value");
tableColWidths.push(maxDevValue+2)
} else {
tableHeaders.push("Live Value");
tableColWidths.push(maxLiveValue+2)
}
}
var table = new Table({
head: tableHeaders,
colWidths: tableColWidths,
style: exports.style()
});
for(var p=0;p<appEnvVars.length;p++){
var appVar = appEnvVars[p].fields;
var dataRow = [ appVar.guid, moment(appVar.sysCreated, 'YYYY-MM-DD h:mm:ss:SSS').fromNow(), appVar.name];
if(appVar.devValue){
dataRow.push(appVar.devValue);
}
if(appVar.liveValue){
dataRow.push(appVar.liveValue);
}
table.push(dataRow);
}
return table;
}
function bytesToSize(bytes) {

@@ -341,3 +389,40 @@ var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];

// Env Var functions
function postEnv(action, payload, errorMsg,cb) {
exports.doApiCall(fhreq.getFeedHenryUrl(), "box/srv/1.1/app/envvariable/" + action, payload, errorMsg, cb);
};
exports.createAppEnv= function(appId, varName,devValue,liveValue,cb) {
postEnv("create", {appId:appId,name:varName, devValue: devValue, liveValue: liveValue}, "Error creating env var: ", cb);
};
exports.readAppEnv= function(appId, envVarId, envValue, cb) {
postEnv("read", {appId:appId, envVarId:envVarId, env: envValue}, "Error reading env var: ", cb);
};
exports.updateAppEnv= function(appId, envVarId, varName,devValue,liveValue,cb) {
postEnv("update", {appId:appId,envVarId:envVarId,name:varName,devValue:devValue, liveValue: liveValue}, "Error updating env var: ", cb);
};
exports.deleteAppEnv= function(appId, envVarId, envValue, cb) {
postEnv("delete", {appId:appId,envVarId:envVarId, env: envValue}, "Error deleting env var: ", cb);
};
exports.listAppEnv= function(appId, env,cb) {
postEnv("list", {appId:appId,env:env}, "Error listing env var: ", cb);
};
exports.unsetAppEnv= function(params, cb){
postEnv("unset", params, "Error unseting env var:", cb);
}
exports.pushAppEnv = function(appId, env, cb){
postEnv("push", {appId: appId, env: env}, "Error pushing env vars:", cb);
}
exports.listDeployedAppEnv = function(appId, env, cb){
postEnv("listDeployed", {appId: appId, env: env}, "Error listing deployed env vars:", cb);
}
//parse <key>=<value> format

@@ -376,2 +461,1 @@ function parseArgs(args) {

exports.parseArgs = parseArgs;

@@ -87,2 +87,3 @@ process.title = "fhc";

,'embed'
,'env'
,'ota'

@@ -89,0 +90,0 @@ ,'configuration'

module.exports = initlocal;
initlocal.initlocal = initlocal;
initlocal.getEnvVars = getEnvVariables;

@@ -21,2 +22,3 @@ initlocal.usage = "fhc initlocal <app-id>";

var cheerio = require('cheerio');
var env = require('./env.js');

@@ -178,2 +180,56 @@ var localDirectory = ".fhclocal";

function loadEnvVariables(localdir, appId, cb){
env.list(appId, "dev", function(err, data){
if(err) return cb(err);
var envVars = {};
if(data.list && data.list.length > 0){
for(var i=0;i<data.list.length;i++){
var fields = data.list[i].fields;
envVars[fields.name] = fields.devValue;
}
}
writeFileToLocalDirectory(localdir, "envvar.json", JSON.stringify(envVars), function(err, result){
if(err) return cb(err);
return cb(null, envVars);
});
});
}
function getEnvVariables(appId, cb){
if(!appId){
appId = getAppId();
}
var envvarFilePath = path.join(localDirectory, "envvar.json");
//will always try load data from remote first
loadEnvVariables(localDirectory, appId, function(err, envVars){
if(err){
//can not load from remote, try read the local file
if(fs.existsSync(envvarFilePath)){
fs.readFile(envvarFilePath, "utf8", function(err, data){
if(err) return cb(err);
return cb(null, JSON.parse(data));
});
} else {
console.log("No environment variables set.");
return cb(null, {});
}
} else {
return cb(null, envVars);
}
});
}
function getAppId(){
var container, appId;
var p = localDirectory + "/container.html";
if(fs.existsSync(p)){
container = fs.readFileSync(p, "utf8");
var re = new RegExp('"appid"\\s*:\\s*"(.{24})"');
if(re.test(container)){
appId = re.exec(container)[1];
}
}
return appId;
}
function doInitLocal (appId, cb) {

@@ -180,0 +236,0 @@ if (!appId) return cb("No appId specified! Usage:\n" + initlocal.usage);

21

lib/local.js

@@ -228,2 +228,5 @@ "use strict";

appid = args.splice(0,1);
if(appid){
appid = appid.toString();
}
}

@@ -241,2 +244,3 @@ argObj = common.parseArgs(args);

}
var appEnvironment = {};
if(!fs.existsSync(fhcLocalDir)) {

@@ -264,2 +268,9 @@ if(!argObj.appid) {

function(callback) {
initlocal.getEnvVars(appid, function(err, envVars){
if(err) return callback(err);
appEnvironment = envVars;
return callback();
});
},
function(callback) {
packages = getPackagesList(argObj.packages);

@@ -271,8 +282,6 @@

// parameters are passed to the app in the process environment
var appEnvironment = {
'NODE_PATH': (process.platform === 'win32') ? './cloud;./shared' : './cloud:./shared',
'FH_PORT': argObj.cloudPort,
'FH_REDIS_HOST': argObj.redisHost,
'FH_REDIS_PORT': argObj.redisPort
};
appEnvironment['NODE_PATH'] = (process.platform === 'win32') ? './cloud;./shared' : './cloud:./shared';
appEnvironment['FH_PORT'] = argObj.cloudPort;
appEnvironment['FH_REDIS_HOST'] = argObj.redisHost;
appEnvironment['FH_REDIS_PORT'] = argObj.redisPort;

@@ -279,0 +288,0 @@ if (argObj.redisPassword) {

@@ -5,3 +5,3 @@ {

"keywords" : [ "cli", "feedhenry" ],
"version": "0.7.30-193",
"version": "0.7.31-195",
"preferGlobal" : true,

@@ -24,9 +24,9 @@ "homepage" : "http://git.io/fh-fhc",

"nopt" : "1",
"async" : "*",
"async" : "0.2.6",
"request" : "~2.11",
"vmcjs" : "*",
"cheerio" : "*",
"moment": "*",
"vmcjs" : "0.1.11",
"cheerio" : "0.10.8",
"moment": "2.0.0",
"cli-table" : "0.0.2",
"mime": "*"
"mime": "1.2.9"
},

@@ -33,0 +33,0 @@ "devDependencies" : {

@@ -1,1 +0,1 @@

0.7.30-193
0.7.31-195
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc