UNPKG

netsh-rule

Version:

Utility to generate a batch file to manage inbound and outbound Windows firewall connections for a single exe file or all exe files in folder

83 lines 3.01 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.uniqueFileName = exports.uniqueFolderName = exports.toWindows = exports.toUnix = exports.exist = void 0; const path_1 = __importDefault(require("path")); const fs_1 = __importDefault(require("fs")); function exist(name) { try { return fs_1.default.statSync(name); } catch (e) { } } exports.exist = exist; function toUnix(fileName) { const double = /\/\//; let res = fileName.replace(/\\/g, '/'); while (res.match(double)) { res = res.replace(double, '/'); } return res; } exports.toUnix = toUnix; function toWindows(fileName) { let res = fileName.replace(/\//g, '/'); res = res.replace(/\//g, '\\'); return res; } exports.toWindows = toWindows; function zeros(v, total) { // Returns v prefixed with '0's with length <= total or v as is. v = v ? '' + v : ''; return v.length < total ? '0000000000'.slice(0, total - v.length) + v : v; } function getDesktopPath() { if (!process.env.USERPROFILE) { throw Error('User HOME is undefined'); } return path_1.default.join(process.env.USERPROFILE, 'Desktop'); } function nowDay(d) { return `${zeros(d.getMonth() + 1, 2)}.${zeros(d.getDate(), 2)}.${d.getFullYear() % 100}`; } function nowTime(d) { return `${zeros(d.getHours(), 2)}.${zeros(d.getMinutes(), 2)}.${zeros(d.getSeconds(), 2)}.${zeros(d.getMilliseconds(), 3)}`; } function nowDayTime(delimiter = ' at ') { let d = new Date(); return `${nowDay(d)}${delimiter}${nowTime(d)}`; } function ensureNameUnique(name, nameIsFname = true) { // 0. Ensure that file/folder name is unique. let basename, ext = '', index = 0, initialized = false; while (1) { let st = exist(name); if (!st || (st.isDirectory() === nameIsFname)) { // case if folder exist but we create file name. return name; } if (!initialized) { let org = path_1.default.parse(name); if (nameIsFname) { org.base = org.name; // to set base name wo/ ext. ext = org.ext; // folder name may have '.', so keep ext only for file names. } org.ext = ''; basename = path_1.default.format(org); initialized = true; } index++; name = `${basename} (${index})${ext}`; } } //ensureNameUnique() function uniqueFolderName(prefix) { return ensureNameUnique(`${getDesktopPath()}/${prefix} ${nowDayTime()}`, false); } exports.uniqueFolderName = uniqueFolderName; function uniqueFileName(prefix) { return ensureNameUnique(`${getDesktopPath()}/${prefix} ${nowDayTime()}`, true); } exports.uniqueFileName = uniqueFileName; //# sourceMappingURL=unique-names.js.map