UNPKG

fh-fhc

Version:

A Command Line Interface for FeedHenry

159 lines (150 loc) 4.21 kB
// defaults, types, and shorthands. var path = require("path"); var url = require("url"); var Stream = require("stream").Stream; var semver = require("semver"); var stableFamily = semver.parse(process.version); var os = require("os"); var nopt = require("nopt"); var log = require("./log"); nopt.typeDefs.semver = { type: semver, validate: validateSemver }; function validateSemver(data, k, val) { if (!semver.valid(val)) { return false; } data[k] = semver.valid(val); } nopt.invalidHandler = function(k, val) { log.warn(k + "=" + JSON.stringify(val), "invalid config"); }; if (!stableFamily || (+stableFamily[2] % 2)) { stableFamily = null; } else { stableFamily = stableFamily[1] + "." + stableFamily[2]; } var defaults; Object.defineProperty(exports, "defaults", {get: function() { if (defaults) { return defaults; } defaults = { argv : [] , bare : '' , bindist : stableFamily && ( stableFamily + "-" + "ares" + process.versions.ares + "-" + "ev" + process.versions.ev + "-" + "openssl" + process.versions.openssl + "-" + "v8" + process.versions.v8 + "-" + process.platform + "-" + (process.arch ? process.arch + "-" : "") + os.release() ) // are there others? , browser : process.platform === "darwin" ? "open" : "google-chrome" , clean : false , color : true , cookie: "" , cftarget: "" // CloudFoundry settings.. , cfuser: "" , cfpwd: "" , explain: 0 // FH Explain output level. 0=none, 1=active 2=active stacktrace , stack: false , fhcluster: "" , editor : process.env.EDITOR || "vi" , global : false , globalconfig : path.resolve(process.execPath, "..", "..", "etc", "fhcrc") , jsondepth: 2 , logfd : 2 , loglevel : "warn" , filter : undefined , inmemoryconfig: false , outfd : 1 , parseable : false , persistTargets : true , prefix : path.join(process.execPath, "..", "..") , proxy : process.env.HTTP_PROXY || process.env.http_proxy || null , feedhenry : null , messaging : "" , nodejs : true , dynofarm : "" , nocache : false , live : undefined , registry: "" , table : true , thcolor : "green" , json : false , statsMode : false , tar : process.env.TAR || "tar" , tmp : (process.env.TMPDIR || "/tmp") , usage : false , user : "nobody" , usesysinspect : false , username : "" , userconfig : process.platform === "win32" ? path.resolve( process.env.USERPROFILE, "fhc-config" ) : path.resolve(process.env.HOME, ".fhcrc") , usertargets : process.platform === "win32" ? path.resolve( process.env.USERPROFILE,"fhc-targets") : path.resolve(process.env.HOME, ".fhctargets") , version : false , viewer: "man" , _exit : true , dateformat : "DD MMM YYYY HH:mm:ss" }; return defaults; }}); exports.types = { argv : NaN , bare : String , bindist : [String, null] , browser : String , clean: Boolean , color : ["always", Boolean] , cookie : String , cftarget : String , cfuser : String , cfpwd : String , editor : path , explain : Number , stack : Boolean , inmemoryconfig: Boolean , global : Boolean , globalconfig : path , jsondepth : Number , logfd : [Number, Stream] , loglevel : ["silent","win","error","warn","info","verbose","silly"] , filter : String , nodejs : Boolean , outfd : [Number, Stream] , parseable : Boolean , persistTargets : Boolean , prefix: path , proxy : url , feedhenry : url , live : String , registry: String , statsMode : Boolean , table : Boolean , thcolor : String , json : Boolean , tar : String , tmp : path , "unsafe-perm" : Boolean , usage : Boolean , user : String , username : String , userconfig : path , usesysinspect : Boolean , version : Boolean , viewer: path , _exit : Boolean }; exports.shorthands = { d : ["--loglevel", "info"] , dd : ["--loglevel", "verbose"] , ddd : ["--loglevel", "silly"] , silent : ["--loglevel", "silent"] , verbose : ["--loglevel", "verbose"] , silly : ["--loglevel", "silly"] , h : ["--usage"] , H : ["--usage"] , "?" : ["--usage"] , help : ["--usage"] , v : ["--version"] };