yaclt
Version:
Yet Another Change Log Tool
71 lines • 7.13 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.openInEditor = exports.pathIsFile = exports.isFilepath = exports.touchFile = exports.readLines = void 0;
var child_process_1 = require("child_process");
var fs_1 = __importDefault(require("fs"));
var readLines = function (filePath) {
return fs_1.default
.readFileSync(filePath)
.toString()
.replace(/\r\n/g, "\n")
.split("\n")
.filter(Boolean);
};
exports.readLines = readLines;
var touchFile = function (filePath) {
var time = new Date();
try {
fs_1.default.utimesSync(filePath, time, time);
}
catch (_a) {
fs_1.default.closeSync(fs_1.default.openSync(filePath, "w"));
}
};
exports.touchFile = touchFile;
var isFilepath = function (subject) {
try {
fs_1.default.accessSync(subject);
return true;
}
catch (_a) {
return false;
}
};
exports.isFilepath = isFilepath;
var pathIsFile = function (filePath) {
try {
return fs_1.default.statSync(filePath).isFile();
}
catch (_a) {
return false;
}
};
exports.pathIsFile = pathIsFile;
var parseEditorArgs = function (editorString) {
var _a, _b;
if (!editorString.includes(" ")) {
return { cmd: editorString, args: [] };
}
var parts = editorString.split(/ +(?=(?:(?:[^"]*"){2})*[^"]*$)/g);
if (parts.length === 0) {
return { cmd: editorString, args: [] };
}
if (parts.length == 1) {
return { cmd: (_a = parts[0]) !== null && _a !== void 0 ? _a : editorString, args: [] };
}
var cmd = (_b = parts[0]) !== null && _b !== void 0 ? _b : editorString;
var args = parts.slice(1);
return { cmd: cmd, args: args };
};
var openInEditor = function (file) {
if (process.env["EDITOR"]) {
var _a = parseEditorArgs(process.env["EDITOR"]), cmd = _a.cmd, args = _a.args;
args.push(file);
child_process_1.spawn(cmd, args, { stdio: "inherit" });
}
};
exports.openInEditor = openInEditor;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9maWxlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLCtDQUFzQztBQUN0QywwQ0FBb0I7QUFFYixJQUFNLFNBQVMsR0FBRyxVQUFDLFFBQWdCO0lBQ3hDLE9BQUEsWUFBRTtTQUNDLFlBQVksQ0FBQyxRQUFRLENBQUM7U0FDdEIsUUFBUSxFQUFFO1NBQ1YsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7U0FDdEIsS0FBSyxDQUFDLElBQUksQ0FBQztTQUNYLE1BQU0sQ0FBQyxPQUFPLENBQUM7QUFMbEIsQ0FLa0IsQ0FBQztBQU5SLFFBQUEsU0FBUyxhQU1EO0FBRWQsSUFBTSxTQUFTLEdBQUcsVUFBQyxRQUFnQjtJQUV4QyxJQUFNLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBRXhCLElBQUk7UUFDRixZQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDckM7SUFBQyxXQUFNO1FBQ04sWUFBRSxDQUFDLFNBQVMsQ0FBQyxZQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQzFDO0FBQ0gsQ0FBQyxDQUFDO0FBVFcsUUFBQSxTQUFTLGFBU3BCO0FBRUssSUFBTSxVQUFVLEdBQUcsVUFBQyxPQUFlO0lBQ3hDLElBQUk7UUFDRixZQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFBQyxXQUFNO1FBQ04sT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUMsQ0FBQztBQVBXLFFBQUEsVUFBVSxjQU9yQjtBQUVLLElBQU0sVUFBVSxHQUFHLFVBQUMsUUFBZ0I7SUFDekMsSUFBSTtRQUNGLE9BQU8sWUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztLQUN2QztJQUFDLFdBQU07UUFDTixPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQyxDQUFDO0FBTlcsUUFBQSxVQUFVLGNBTXJCO0FBRUYsSUFBTSxlQUFlLEdBQUcsVUFDdEIsWUFBb0I7O0lBRXBCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQy9CLE9BQU8sRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztLQUN4QztJQUdELElBQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUNwRSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3RCLE9BQU8sRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztLQUN4QztJQUVELElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7UUFDckIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFBLEtBQUssQ0FBQyxDQUFDLENBQUMsbUNBQUksWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztLQUNwRDtJQUVELElBQU0sR0FBRyxHQUFHLE1BQUEsS0FBSyxDQUFDLENBQUMsQ0FBQyxtQ0FBSSxZQUFZLENBQUM7SUFDckMsSUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QixPQUFPLEVBQUUsR0FBRyxLQUFBLEVBQUUsSUFBSSxNQUFBLEVBQUUsQ0FBQztBQUN2QixDQUFDLENBQUM7QUFFSyxJQUFNLFlBQVksR0FBRyxVQUFDLElBQVk7SUFDdkMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ25CLElBQUEsS0FBZ0IsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBcEQsR0FBRyxTQUFBLEVBQUUsSUFBSSxVQUEyQyxDQUFDO1FBQzdELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEIscUJBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7S0FDeEM7QUFDSCxDQUFDLENBQUM7QUFOVyxRQUFBLFlBQVksZ0JBTXZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3Bhd24gfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IGZzIGZyb20gXCJmc1wiO1xuXG5leHBvcnQgY29uc3QgcmVhZExpbmVzID0gKGZpbGVQYXRoOiBzdHJpbmcpOiBzdHJpbmdbXSA9PlxuICBmc1xuICAgIC5yZWFkRmlsZVN5bmMoZmlsZVBhdGgpXG4gICAgLnRvU3RyaW5nKClcbiAgICAucmVwbGFjZSgvXFxyXFxuL2csIFwiXFxuXCIpXG4gICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgLmZpbHRlcihCb29sZWFuKTtcblxuZXhwb3J0IGNvbnN0IHRvdWNoRmlsZSA9IChmaWxlUGF0aDogc3RyaW5nKTogdm9pZCA9PiB7XG4gIC8vIHNlZSBodHRwczovL3JlbWFya2FibGVtYXJrLm9yZy9ibG9nLzIwMTcvMTIvMTcvdG91Y2gtZmlsZS1ub2RlanMvI3RvdWNoLWZpbGVcbiAgY29uc3QgdGltZSA9IG5ldyBEYXRlKCk7XG5cbiAgdHJ5IHtcbiAgICBmcy51dGltZXNTeW5jKGZpbGVQYXRoLCB0aW1lLCB0aW1lKTtcbiAgfSBjYXRjaCB7XG4gICAgZnMuY2xvc2VTeW5jKGZzLm9wZW5TeW5jKGZpbGVQYXRoLCBcIndcIikpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgaXNGaWxlcGF0aCA9IChzdWJqZWN0OiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgdHJ5IHtcbiAgICBmcy5hY2Nlc3NTeW5jKHN1YmplY3QpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwYXRoSXNGaWxlID0gKGZpbGVQYXRoOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZnMuc3RhdFN5bmMoZmlsZVBhdGgpLmlzRmlsZSgpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG5cbmNvbnN0IHBhcnNlRWRpdG9yQXJncyA9IChcbiAgZWRpdG9yU3RyaW5nOiBzdHJpbmdcbik6IHsgY21kOiBzdHJpbmc7IGFyZ3M6IHN0cmluZ1tdIH0gPT4ge1xuICBpZiAoIWVkaXRvclN0cmluZy5pbmNsdWRlcyhcIiBcIikpIHtcbiAgICByZXR1cm4geyBjbWQ6IGVkaXRvclN0cmluZywgYXJnczogW10gfTtcbiAgfVxuXG4gIC8vIHNwbGl0IGF0IHNwYWNlLCB1bmxlc3MgdGhlIHNwYWNlIGlzIHF1b3RlZFxuICBjb25zdCBwYXJ0cyA9IGVkaXRvclN0cmluZy5zcGxpdCgvICsoPz0oPzooPzpbXlwiXSpcIil7Mn0pKlteXCJdKiQpL2cpO1xuICBpZiAocGFydHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHsgY21kOiBlZGl0b3JTdHJpbmcsIGFyZ3M6IFtdIH07XG4gIH1cblxuICBpZiAocGFydHMubGVuZ3RoID09IDEpIHtcbiAgICByZXR1cm4geyBjbWQ6IHBhcnRzWzBdID8/IGVkaXRvclN0cmluZywgYXJnczogW10gfTtcbiAgfVxuXG4gIGNvbnN0IGNtZCA9IHBhcnRzWzBdID8/IGVkaXRvclN0cmluZztcbiAgY29uc3QgYXJncyA9IHBhcnRzLnNsaWNlKDEpO1xuICByZXR1cm4geyBjbWQsIGFyZ3MgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBvcGVuSW5FZGl0b3IgPSAoZmlsZTogc3RyaW5nKTogdm9pZCA9PiB7XG4gIGlmIChwcm9jZXNzLmVudltcIkVESVRPUlwiXSkge1xuICAgIGNvbnN0IHsgY21kLCBhcmdzIH0gPSBwYXJzZUVkaXRvckFyZ3MocHJvY2Vzcy5lbnZbXCJFRElUT1JcIl0pO1xuICAgIGFyZ3MucHVzaChmaWxlKTtcbiAgICBzcGF3bihjbWQsIGFyZ3MsIHsgc3RkaW86IFwiaW5oZXJpdFwiIH0pO1xuICB9XG59O1xuIl19