UNPKG

remotemon

Version:

remote monitoring, since there is no ansible for raspberry pi.

385 lines (383 loc) 13.1 kB
var x$, com, y$, most, hoplon, ref$, z, wait, most_create, child_process, readline, cp, be, R, dotpat, print, c, l, lit, j, readJson, create_stack, show_stack, metadata, show_name, rdot, clean_path, show_body, rm_empty_lines, internal, show, show_main, create_logger, print_wrap, I, key, out$ = typeof exports != 'undefined' && exports || this; x$ = com = {}; y$ = x$.metadata = {}; y$.name = null; y$.repourl = null; y$.homepage = null; y$.version = null; com.fs = require('fs'); most = require('most'); com.most = most; com.chokidar = require('chokidar'); hoplon = require('hoplon'); ref$ = hoplon.utils, z = ref$.z, wait = ref$.wait; com.hoplon = hoplon; most_create = require("@most/create").create; com.most_create = most_create; child_process = require('child_process'); readline = require('readline'); com.optionParser = require('option-parser'); com.tampax = require('tampax'); com.yaml = require('yaml'); com.path = require('path'); com.child_process = child_process; cp = child_process; be = hoplon.types; com.readline = readline; com.moment = require('moment'); com.compare_version = require('../dist/compare.version.js'); var boxen = import('boxen') var emphasize = import('emphasize/lib/all.js') com.emphasize = emphasize; com.boxen = boxen; R = hoplon.utils.R; dotpat = be.str.edit(R.split(".")).or(be.undef.cont([])).wrap(); dotpat.take = function(amount, signal){ var sig; sig = dotpat(signal); return R.take(amount, sig).join("."); }; com.dotpat = dotpat; com.spawn = function(cmd, inpwd){ return cp.spawnSync(cmd, [], { shell: 'bash', stdio: 'inherit', windowsVerbatimArguments: true, cwd: inpwd }); }; com.exec = function(cmd, dryRun){ dryRun == null && (dryRun = false); if (!dryRun) { return child_process.execSync(cmd).toString(); } }; com.readJson = function(filename){ return JSON.parse( com.hoplon.utils.R.toString( com.fs.readFileSync(filename))); }; print = {}; out$.com = com; out$.print = print; ref$ = hoplon.utils, c = ref$.c, l = ref$.l, lit = ref$.lit, j = ref$.j, readJson = ref$.readJson, R = ref$.R, z = ref$.z, create_stack = ref$.create_stack; show_stack = create_stack(2, ['node:internal']); R.tryCatch(function(filename){ var raw, pj; raw = com.readJson(filename); pj = {}; pj.name = raw.name; pj.repourl = raw.repository; pj.homepage = raw.homepage; pj.version = raw.version; com.metadata = pj; }, function(){ l(c.er2("- | unable to locate or parse package.json of module.")); show_stack(new Error()); })( __dirname + '/../package.json'); metadata = com.metadata; show_name = function(filename){ filename == null && (filename = ''); return l(lit(["[" + metadata.name + "]", " • dataError • ", filename, "\n"], [c.er3, c.er2, c.pink, null])); }; rdot = /\./; clean_path = R.pipe(R.map(function(txt){ if (rdot.exec(txt)) { return "\"" + txt + "\""; } return txt; }), R.splitAt(-1)); show_body = function(path, msg){ var ref$, init, last, txt, I; ref$ = clean_path(path), init = ref$[0], last = ref$[1]; txt = [" " + init.join("."), "." + last.join("."), " <-- error here"]; if (msg) { if (R.type(msg) === 'Array') { msg = (function(){ var i$, ref$, len$, results$ = []; for (i$ = 0, len$ = (ref$ = msg).length; i$ < len$; ++i$) { I = ref$[i$]; results$.push(c.er1(I)); } return results$; }()).join(c.er1(", ")); } txt.push("\n\n " + msg, " "); } return lit(txt, [c.warn, c.er3, c.er2, c.er1]); }; print.hist_file_corrupted = function(hist_file){ l(lit(["[" + metadata.name + "]", " • fileError\n"], [c.er2, c.er3])); return l(c.er1(" hist file is corrupted :") + c.er2(hist_file)); }; print.rsyncError = function(msg, path, filename){ var itype, imsg; show_name(filename); l(show_body(path)); itype = msg[0], imsg = msg[1]; switch (itype) { case 'duo': l(lit(["\n ", "." + imsg[0] + " ", imsg[1]], [0, c.er3, c.pink])); break; case 'uno': l(lit(["\n ", imsg], [0, c.er1])); } return l(c.grey("\n please refer to docs to provide valid values.")); }; rm_empty_lines = R.pipe(R.filter(function(str){ if (str.length === 0) { return false; } else { return true; } })); com.rm_empty_lines = rm_empty_lines; print.yaml_parse_fail = function(msg, info){ var txt; txt = R.join('\n ')( rm_empty_lines( R.split('\n')( msg))); l(lit(["[" + metadata.name + "]", " • parseError •", " YAML file."], [c.er3, c.er3, c.er3])); l(lit(['\n Error in file ', info.configfile, "."], [c.er2, c.er2, c.er2])); return process.stdout.write('\n ' + c.warn(txt)); }; print.incorrect_arg_num = function(){ l(lit(["[" + metadata.name + "]", " • inputError\n"], [c.er2, c.er3])); return l(lit([" ", "incorrect number of arguments for function."], [0, c.er1, c.er3, c.er1])); }; print.incorrect_custom = function(__, key){ l(lit(["[" + metadata.name + "]", " • incorrect custom task name ", "\n"], [c.er2, c.er3, c.er2, null])); return l(lit([" ", key, " <-- custom task name cannot contain", " \"/\" ", "character. "], [null, c.er3, c.er1, c.er3, c.er1])); }; print.reqError = function(props, path, filename){ var ref$, init, last; show_name(filename); ref$ = R.splitAt(-1, path), init = ref$[0], last = ref$[1][0]; l(lit([" mandatory value " + c.er1("." + last) + " not present.\n\n", " all mandatory value(s) :\n"], [c.grey, c.grey])); return l(c.er1(" ." + props.join(" ."))); }; print.defarg_req = function(len){ l(lit(["[" + metadata.name + "]", " • dataError \n"], [c.er2, c.er3])); return l(lit([" command requires minimum of ", len, " commandline argument."], [c.er2, c.er3, c.er2])); }; print.cmdError = function(cmdname){ return l(lit(["[" + metadata.name + "] • cmdFailure • ", cmdname], [c.er2, c.warn])); }; print.ob_in_str_list = function(type, path, filename){ var txt; show_name(filename); txt = (function(){ switch (type) { case 'object': return "object not accepted in string list."; case 'empty_object': return "empty object found, it could be a YAML alias referencing issue."; } }()); return l(show_body(path, txt)); }; print.failed_in_mod_yaml = function(filename, E){ l(lit(["[" + metadata.name + "]", " • parseError •", " unable to read YAML file."], [c.warn, c.er3, c.er1])); l("\n " + c.pink(com.path.resolve(filename))); return l(c.er1("\n " + E)); }; print.failed_in_tampax_parsing = function(filename, E){ var emsg; l(lit(["[" + metadata.name + "]", " • parseError •", " yaml/tampex parsing error."], [c.warn, c.er2, c.er1])); l("\n " + c.pink(com.path.resolve(filename)) + "\n"); l(c.grey(E)); emsg = ["\n", c.warn(" make sure :\n\n"), c.er1(" - YAML file(s) can be parsed without error.\n"), c.er1(" - YAML file(s) has no duplicate field.\n"), c.er1(" - YAML file(s) is not empty.\n"), c.er1(" - correct path is provided.")]; return l(emsg.join("")); }; print.in_selected_key = function(key, cmd_str){ l(lit(["[" + metadata.name + "]", " • cmdFailure •\n"], [c.er2, c.er3])); l(lit([" " + key, " is a selected key, cannot be used as a task name.\n"], [c.er3, c.warn])); return l(lit([" ", cmd_str.join(" ")], [null, c.er1])); }; print.error_in_user_script = function(err_msg, path){ l(lit(["[" + metadata.name + "]", " • cmdFailure •", " error in user script.\n"], [c.er2, c.er3, c.er1])); l(lit([" ", path.join("."), " <-- error here.\n"], [null, c.warn, c.er3])); return process.stdout.write(c.grey(err_msg)); }; print.resError = function(props, path, filename){ var key; show_name(filename); key = R.last(path); return l(show_body(path, [c.grey("unrecognized config key") + c.er3(" " + key) + "\n", c.grey("only acceptable keys are :\n"), c.pink("- " + props.join(" \n - "))].join("\n "))); }; print.could_not_find_custom_cmd = function(cmdname){ l(lit(["[" + metadata.name + "]", " • dataError\n"], [c.er2, c.er3])); return l(lit([" unable to locate ", cmdname + "", " task in config file."], [c.er1, c.warn, c.er1])); }; print.custom_build = function(msg, path, filename){ show_name(filename); return l(show_body(path, [c.grey("unrecognized value provided.") + "\n", c.grey("only acceptable value types :\n"), c.pink("- array of string ( defaults to local )."), c.pink("- object with restricted keys :"), c.warn("\n - " + data.selected_keys.arr.join("\n - "))].join("\n "))); }; print.file_does_not_exists = function(val, arg$){ var filename, path; filename = arg$.filename, path = arg$.path; show_name(filename); return l(show_body(path, [c.warn(val) + c.grey(' folder/project does not exist.')])); }; print.basicError = function(msg, path, filename){ show_name(filename); return l(show_body(path, msg)); }; print.no_match_for_arguments = function(){ return l(lit(["[" + metadata.name + "]", " • argumentError \n\n", " match for arguments failed.\n\n", " " + j(arguments)], [c.er2, c.er3, c.warn, c.pink])); }; internal = {}; internal.normal = hoplon.guard.unary.wh(function(arg$){ var type; type = arg$[0]; return typeof type !== 'string'; }, function(args, state){ if (args[0]) { internal.normal(R.drop(1, args), state); } }).ar(1, function(arg$, state){ var txt; txt = arg$[0]; l(lit(["[" + metadata.name + "] ", txt], [c.ok, null])); }).ar(2, function(arg$, state){ var type, txt_1, brac_color, txt_color; type = arg$[0], txt_1 = arg$[1]; switch (type) { case 'ok': brac_color = c.ok; txt_color = c.grey; break; case 'warn': brac_color = c.er1; txt_color = c.grey; break; case 'err': brac_color = c.er3; txt_color = c.er2; } txt_1 = lit([txt_1], [brac_color, txt_color, brac_color]); internal.normal([type, false, txt_1], state); }).ar(3, function(arg$, state){ var type, txt_1, disp, buildname, color_process_name, color_buildname_dot, color_buildname, color_finaltxt, procname, procdot; type = arg$[0], txt_1 = arg$[1], disp = arg$[2]; buildname = state.buildname; switch (type) { case 'ok': color_process_name = c.ok; color_buildname_dot = c.ok; color_buildname = c.ok; color_finaltxt = c.ok; break; case 'warn': color_process_name = c.warn; color_buildname_dot = c.warn; color_buildname = c.warn; color_finaltxt = c.warn; break; case 'err': color_process_name = c.er3; color_buildname_dot = c.er3; color_buildname = c.er3; color_finaltxt = c.er2; break; case 'err_light': color_process_name = c.er1; color_buildname_dot = c.er1; color_buildname = c.er1; color_finaltxt = c.er1; } procname = color_buildname_dot(" • ") + color_buildname(txt_1); procdot = " •"; if (!txt_1) { procname = ""; } if (buildname) { buildname = color_buildname_dot(" • ") + color_buildname(buildname); } else { buildname = ""; } return l(lit(["[" + metadata.name + "]", buildname, procname, procdot, " " + disp], [color_process_name, null, null, color_buildname_dot, color_finaltxt])); }).ar(4, function(arg$, state){ var type, txt_1, txt_2, txt_3; type = arg$[0], txt_1 = arg$[1], txt_2 = arg$[2], txt_3 = arg$[3]; normal_internal([type, txt_1, txt_2], state); l(" " + txt_3); }).def(); internal.verbose = hoplon.guard.unary.ar(2, function(arg$, state){ var txt_1, txt_2, vl, disp; txt_1 = arg$[0], txt_2 = arg$[1]; vl = state.verbose_level; if (vl === 1) { disp = txt_1.replace(/\'''/g, "'"); } else if (vl > 1) { disp = txt_2.replace(/\'''/g, "'"); } else if (vl === 0) { return; } return l("> " + disp); }).ar(1, function(arg$, state){ var txt_1, disp; txt_1 = arg$[0]; if (state.verbose_level) { disp = txt_1.replace(/\'''/g, "'"); return l("> " + disp); } }).def(); internal.dry = hoplon.guard.unary.ar(1, function(arg$, state){ var txt; txt = arg$[0]; l(txt); }).ar(2, function(arg$, state){ var type, txt, color; type = arg$[0], txt = arg$[1]; color = (function(){ switch (type) { case 'ok': return c.ok; case 'err': return c.er1; } }()); l(color("[" + metadata.name + "] " + txt)); }).def(); show = {}; show_main = function(type){ return function(){ if (!this.silent) { return internal[type](arguments, this); } }; }; show.normal = show_main('normal'); show.dry = show_main('dry'); show.verbose = function(){ return internal.verbose(arguments, this); }; create_logger = function(buildname, verbose, silent){ var instance; instance = Object.create(show); instance.buildname = buildname; instance.verbose_level = verbose; instance.silent = silent; return instance; }; print_wrap = function(f){ return function(){ f.apply(null, arguments); l(c.grey("\n[docs] " + metadata.homepage + "\n")); return show_stack(new Error()); }; }; for (I in print) { key = print[I]; if (I === 'cmdError') { continue; } print[I] = print_wrap(key); } print.showHeader = function(){ return l(lit(["[" + metadata.name + "]", " v" + metadata.version], [c.er1, c.er1])); }; print.create_logger = create_logger;