Comparing version 0.4.0 to 0.4.1
@@ -36,3 +36,3 @@ #!/usr/bin/env node | ||
var os_1 = __importDefault(require("os")); | ||
var cli = meow_1.default("\n QQ\u53CD\u9988\u7FA4\u53F7\uFF1A" + chalk_1.default.cyanBright('807101297') + "\n\n \u7528\u6CD5:\n $ hlink [--Options] [sourceDir] distDir\n\n \u53EF\u914D\u7F6E\u9009\u9879:\n --saveMode,-s \u4FDD\u5B58\u6A21\u5F0F,\u9ED8\u8BA4\u4E3A\u6A21\u5F0F0\n " + chalk_1.default.gray("saveMode=1 \u4FDD\u5B58\u4E00\u7EA7\u76EE\u5F55\n saveMode=0 \u4FDD\u5B58\u539F\u6709\u7684\u76F8\u5BF9\u6E90\u5730\u5740\u7684\u8DEF\u5F84") + "\n\n --includeExtname,-i \u5305\u542B\u7684\u6269\u5C55\u540D,\u591A\u4E2A\u7528','\u9694\u5F00\n " + chalk_1.default.gray("\u5982\u679C\u4E0D\u914D\u7F6E\u8BE5\u9879,\u4F1A\u91C7\u7528\u4EE5\u4E0B\u7B56\u7565\n * 1. \u914D\u7F6E\u4E86excludeExtnam,\u5219\u94FE\u63A5\u6587\u4EF6\u4E3A\u6392\u9664\u540E\u7684\u5176\u4ED6\u6587\u4EF6\n * 2. \u672A\u914D\u7F6EexcludeExtname,\u5219\u94FE\u63A5\u6587\u4EF6\u4E3A\u76EE\u5F55\u4E0B\u7684\u6240\u6709\u6587\u4EF6") + "\n\n --excludeExtname,-e \u6392\u9664\u7684\u6269\u5C55\u540D,\u591A\u4E2A\u7528','\u9694\u5F00\u5982\u679C\u914D\u7F6E\u4E86" + chalk_1.default.cyan('includeExtname') + "\u5219\u8BE5\u914D\u7F6E\u65E0\u6548\n\n --maxFindLevel,-m \u67E5\u627E\u6587\u4EF6\u7684\u6700\u5927\u5C42\u7EA7,\u9ED8\u8BA44\u5C42\n --delete,-d \u5220\u9664\u76EE\u6807\u5730\u5740\u6240\u6709\u786C\u94FE,\u9ED8\u8BA4\u4E3Afalse\n --generateConfig,-g \u751F\u6210config\u6587\u4EF6,\u53EF\u4EE5\u4F7F\u7528 hlink -g \u67E5\u770B\u8DEF\u5F84\n --removeConfig,-r \u5220\u9664\u914D\u7F6E\u6587\u4EF6\n --configPath,-c \u6307\u5B9A\u914D\u7F6E\u6587\u4EF6\u8DEF\u5F84,\u8BF7\u4F7F\u7528\u7EDD\u5BF9\u8DEF\u5F84\n --openCache,-o \u662F\u5426\u6253\u5F00\u7F13\u5B58,\u9ED8\u8BA4\u4E3Atrue, \u4F1A\u6253\u5F00\n \u6253\u5F00\u540E,\u6BCF\u6B21\u786C\u94FE\u540E\u4F1A\u628A\u5BF9\u5E94\u6587\u4EF6\u5B58\u5165\u7F13\u5B58,\u5C31\u7B97\u4E0B\u6B21\u5220\u9664\u786C\u94FE\uFF0C\u4E5F\u4E0D\u4F1A\u8FDB\u884C\u786C\u94FE\n\n --mkdirIfSingle \u662F\u5426\u4E3A\u72EC\u7ACB\u6587\u4EF6\u521B\u5EFA\u540C\u540D\u6587\u4EF6\u5939,\u9ED8\u8BA4\u4E3Atrue,\u4F1A\u521B\u5EFA\n --backup \u5907\u4EFDhlink\u76EE\u5F55\u7F13\u5B58\u7B49 \u5907\u4EFD\u8DEF\u5F84\n --restore \u8FD8\u539Fhlink\u76EE\u5F55\u7F13\u5B58\u7B49 \u8FD8\u539F\u8DEF\u5F84\n\n \u4F8B\u5B50:\n " + chalk_1.default.grey('# 创建 /share/download 下面文件到目标地址 /share/movie') + "\n $ hlink /share/download /share/movie\n\n " + chalk_1.default.grey('# 删除 /share/download 下面文件在 /share/movie 下面的对应硬链的文件夹') + "\n $ hlink -d /share/download /share/movie\n\n " + chalk_1.default.grey('# 交互删除(推荐)') + "\n $ hlink -d\n\n " + chalk_1.default.grey('# 生成配置文件') + "\n $ hlink -g", { | ||
var cli = (0, meow_1.default)("\n QQ\u53CD\u9988\u7FA4\u53F7\uFF1A" + chalk_1.default.cyanBright('807101297') + "\n\n \u7528\u6CD5:\n $ hlink [--Options] [sourceDir] distDir\n\n \u53EF\u914D\u7F6E\u9009\u9879:\n --saveMode,-s \u4FDD\u5B58\u6A21\u5F0F,\u9ED8\u8BA4\u4E3A\u6A21\u5F0F0\n " + chalk_1.default.gray("saveMode=1 \u4FDD\u5B58\u4E00\u7EA7\u76EE\u5F55\n saveMode=0 \u4FDD\u5B58\u539F\u6709\u7684\u76F8\u5BF9\u6E90\u5730\u5740\u7684\u8DEF\u5F84") + "\n\n --includeExtname,-i \u5305\u542B\u7684\u6269\u5C55\u540D,\u591A\u4E2A\u7528','\u9694\u5F00\n " + chalk_1.default.gray("\u5982\u679C\u4E0D\u914D\u7F6E\u8BE5\u9879,\u4F1A\u91C7\u7528\u4EE5\u4E0B\u7B56\u7565\n * 1. \u914D\u7F6E\u4E86excludeExtnam,\u5219\u94FE\u63A5\u6587\u4EF6\u4E3A\u6392\u9664\u540E\u7684\u5176\u4ED6\u6587\u4EF6\n * 2. \u672A\u914D\u7F6EexcludeExtname,\u5219\u94FE\u63A5\u6587\u4EF6\u4E3A\u76EE\u5F55\u4E0B\u7684\u6240\u6709\u6587\u4EF6") + "\n\n --excludeExtname,-e \u6392\u9664\u7684\u6269\u5C55\u540D,\u591A\u4E2A\u7528','\u9694\u5F00\u5982\u679C\u914D\u7F6E\u4E86" + chalk_1.default.cyan('includeExtname') + "\u5219\u8BE5\u914D\u7F6E\u65E0\u6548\n\n --maxFindLevel,-m \u67E5\u627E\u6587\u4EF6\u7684\u6700\u5927\u5C42\u7EA7,\u9ED8\u8BA44\u5C42\n --delete,-d \u5220\u9664\u76EE\u6807\u5730\u5740\u6240\u6709\u786C\u94FE,\u9ED8\u8BA4\u4E3Afalse\n --generateConfig,-g \u751F\u6210config\u6587\u4EF6,\u53EF\u4EE5\u4F7F\u7528 hlink -g \u67E5\u770B\u8DEF\u5F84\n --removeConfig,-r \u5220\u9664\u914D\u7F6E\u6587\u4EF6\n --configPath,-c \u6307\u5B9A\u914D\u7F6E\u6587\u4EF6\u8DEF\u5F84,\u8BF7\u4F7F\u7528\u7EDD\u5BF9\u8DEF\u5F84\n --openCache,-o \u662F\u5426\u6253\u5F00\u7F13\u5B58,\u9ED8\u8BA4\u4E3Atrue, \u4F1A\u6253\u5F00\n \u6253\u5F00\u540E,\u6BCF\u6B21\u786C\u94FE\u540E\u4F1A\u628A\u5BF9\u5E94\u6587\u4EF6\u5B58\u5165\u7F13\u5B58,\u5C31\u7B97\u4E0B\u6B21\u5220\u9664\u786C\u94FE\uFF0C\u4E5F\u4E0D\u4F1A\u8FDB\u884C\u786C\u94FE\n\n --mkdirIfSingle \u662F\u5426\u4E3A\u72EC\u7ACB\u6587\u4EF6\u521B\u5EFA\u540C\u540D\u6587\u4EF6\u5939,\u9ED8\u8BA4\u4E3Atrue,\u4F1A\u521B\u5EFA\n --backup \u5907\u4EFDhlink\u76EE\u5F55\u7F13\u5B58\u7B49 \u5907\u4EFD\u8DEF\u5F84\n --restore \u8FD8\u539Fhlink\u76EE\u5F55\u7F13\u5B58\u7B49 \u8FD8\u539F\u8DEF\u5F84\n\n \u4F8B\u5B50:\n " + chalk_1.default.grey('# 创建 /share/download 下面文件到目标地址 /share/movie') + "\n $ hlink /share/download /share/movie\n\n " + chalk_1.default.grey('# 删除 /share/download 下面文件在 /share/movie 下面的对应硬链的文件夹') + "\n $ hlink -d /share/download /share/movie\n\n " + chalk_1.default.grey('# 交互删除(推荐)') + "\n $ hlink -d\n\n " + chalk_1.default.grey('# 生成配置文件') + "\n $ hlink -g", { | ||
flags: { | ||
@@ -118,3 +118,3 @@ saveMode: { | ||
else if ('g' in flags) { | ||
config_1.default(!!flags.g | ||
(0, config_1.default)(!!flags.g | ||
? path_1.default.isAbsolute(flags.g) | ||
@@ -126,4 +126,4 @@ ? path_1.default.join(flags.g, paths.configName) | ||
else { | ||
index_1.default(cli.input, flags); | ||
(0, index_1.default)(cli.input, flags); | ||
} | ||
} |
@@ -33,3 +33,3 @@ "use strict"; | ||
if (fs_extra_1.default.existsSync(createPath)) { | ||
utils_1.warning(fs_extra_1.default.existsSync(createPath), "\u914D\u7F6E\u6587\u4EF6\u5DF2\u5B58\u5728 " + chalk_1.default.cyan(createPath) + " \u8BF7\u52FF\u91CD\u590D\u521B\u5EFA"); | ||
(0, utils_1.warning)(fs_extra_1.default.existsSync(createPath), "\u914D\u7F6E\u6587\u4EF6\u5DF2\u5B58\u5728 " + chalk_1.default.cyan(createPath) + " \u8BF7\u52FF\u91CD\u590D\u521B\u5EFA"); | ||
} | ||
@@ -36,0 +36,0 @@ try { |
@@ -19,6 +19,6 @@ "use strict"; | ||
if (source) { | ||
utils_1.warning(!path_1.default.isAbsolute(source), '配置文件', chalk_1.default.cyan(configPath), '源地址必须指定绝对路劲'); | ||
(0, utils_1.warning)(!path_1.default.isAbsolute(source), '配置文件', chalk_1.default.cyan(configPath), '源地址必须指定绝对路劲'); | ||
} | ||
if (dest) { | ||
utils_1.warning(!path_1.default.isAbsolute(dest), '配置文件', chalk_1.default.cyan(configPath), '目标必须指定绝对路劲'); | ||
(0, utils_1.warning)(!path_1.default.isAbsolute(dest), '配置文件', chalk_1.default.cyan(configPath), '目标必须指定绝对路劲'); | ||
} | ||
@@ -25,0 +25,0 @@ return { |
@@ -102,11 +102,11 @@ "use strict"; | ||
totalCount += 1; | ||
realDestPath = utils_1.getRealDestPath(fileFullPath, source, dest, saveMode, mkdirIfSingle); | ||
realDestPath = (0, utils_1.getRealDestPath)(fileFullPath, source, dest, saveMode, mkdirIfSingle); | ||
if (isDelete) { | ||
// 删除硬链接 | ||
try { | ||
linkPaths = utils_1.getLinkPath(fileFullPath, dest, isDeleteDir); | ||
linkPaths = (0, utils_1.getLinkPath)(fileFullPath, dest, isDeleteDir); | ||
if (linkPaths.length) { | ||
linkPaths.forEach(function (removePath) { | ||
execa_1.default.sync('rm', ['-r', removePath]); | ||
var deletePathMessage = chalk_1.default.cyan(utils_1.getDirBasePath(dest, removePath)); | ||
var deletePathMessage = chalk_1.default.cyan((0, utils_1.getDirBasePath)(dest, removePath)); | ||
utils_1.log.info(isDeleteDir ? '目录' : '硬链', deletePathMessage, '删除成功'); | ||
@@ -118,3 +118,3 @@ successCount += 1; | ||
jumpCount += 1; | ||
utils_1.log.warn('没找到', chalk_1.default.yellow(utils_1.getDirBasePath(dest, fileFullPath)), '相关硬链, 跳过'); | ||
utils_1.log.warn('没找到', chalk_1.default.yellow((0, utils_1.getDirBasePath)(dest, fileFullPath)), '相关硬链, 跳过'); | ||
} | ||
@@ -124,3 +124,3 @@ } | ||
if (e.message === 'ALREADY_DELETE') { | ||
utils_1.log.warn('目录', chalk_1.default.yellow(utils_1.getDirBasePath(dest, realDestPath)), '已删除, 跳过'); | ||
utils_1.log.warn('目录', chalk_1.default.yellow((0, utils_1.getDirBasePath)(dest, realDestPath)), '已删除, 跳过'); | ||
jumpCount += 1; | ||
@@ -135,14 +135,14 @@ } | ||
else { | ||
sourceNameForMessage = chalk_1.default.yellow(utils_1.getDirBasePath(source, fileFullPath)); | ||
destNameForMessage = chalk_1.default.cyan(utils_1.getDirBasePath(dest, path_1.default.join(realDestPath, name))); | ||
sourceNameForMessage = chalk_1.default.yellow((0, utils_1.getDirBasePath)(source, fileFullPath)); | ||
destNameForMessage = chalk_1.default.cyan((0, utils_1.getDirBasePath)(dest, path_1.default.join(realDestPath, name))); | ||
try { | ||
if (utils_1.checkLinkExist(fileFullPath, dest)) { | ||
if ((0, utils_1.checkLinkExist)(fileFullPath, dest)) { | ||
throw new HlinkError_1.default('File exists'); | ||
} | ||
destFullPath = path_1.default.join(realDestPath, path_1.default.basename(fileFullPath)); | ||
if (!saveCache_1.checkCache(fileFullPath, destFullPath) || !openCache) { | ||
if (!(0, saveCache_1.checkCache)(fileFullPath, destFullPath) || !openCache) { | ||
fs_extra_1.default.ensureDirSync(realDestPath); | ||
execa_1.default.sync('ln', [fileFullPath, realDestPath]); | ||
utils_1.log.success('源地址', sourceNameForMessage, '硬链成功, 硬链地址为', destNameForMessage); | ||
saveCache_1.default(fileFullPath, destFullPath); | ||
(0, saveCache_1.default)(fileFullPath, destFullPath); | ||
successCount += 1; | ||
@@ -183,7 +183,7 @@ } | ||
isSecondDir = false; | ||
return [4 /*yield*/, parse_1.default(input, options)]; | ||
return [4 /*yield*/, (0, parse_1.default)(input, options)]; | ||
case 1: | ||
_a = _b.sent(), source = _a.source, saveMode = _a.saveMode, dest = _a.dest, isDelete = _a.isDelete, maxFindLevel = _a.maxFindLevel, exts = _a.exts, excludeExts = _a.excludeExts, sourceDir = _a.sourceDir, isDeleteDir = _a.isDeleteDir, openCache = _a.openCache, mkdirIfSingle = _a.mkdirIfSingle; | ||
isWhiteList = !!exts.length; | ||
utils_1.startLog({ | ||
(0, utils_1.startLog)({ | ||
extname: (isWhiteList ? exts : excludeExts).join(','), | ||
@@ -201,4 +201,4 @@ maxLevel: maxFindLevel, | ||
start(source); | ||
saveRecord_1.default(sourceDir, dest, isDelete && !isSecondDir); | ||
utils_1.endLog(successCount, failCount, jumpCount, totalCount, jumpCountForCache, isDelete); | ||
(0, saveRecord_1.default)(sourceDir, dest, isDelete && !isSecondDir); | ||
(0, utils_1.endLog)(successCount, failCount, jumpCount, totalCount, jumpCountForCache, isDelete); | ||
return [2 /*return*/]; | ||
@@ -205,0 +205,0 @@ } |
"use strict"; | ||
var __spreadArray = (this && this.__spreadArray) || function (to, from) { | ||
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) | ||
to[j] = from[i]; | ||
return to; | ||
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { | ||
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { | ||
if (ar || !(i in from)) { | ||
if (!ar) ar = Array.prototype.slice.call(from, 0, i); | ||
ar[i] = from[i]; | ||
} | ||
} | ||
return to.concat(ar || Array.prototype.slice.call(from)); | ||
}; | ||
@@ -23,3 +27,3 @@ var __importDefault = (this && this.__importDefault) || function (mod) { | ||
} | ||
console.log.apply(console, __spreadArray([chalk_1.default.cyan("[" + logHead + " INFO]:")], args)); | ||
console.log.apply(console, __spreadArray([chalk_1.default.cyan("[" + logHead + " INFO]:")], args, false)); | ||
}, | ||
@@ -31,3 +35,3 @@ warn: function () { | ||
} | ||
console.log.apply(console, __spreadArray([chalk_1.default.yellow("[" + logHead + " WARN]:")], args)); | ||
console.log.apply(console, __spreadArray([chalk_1.default.yellow("[" + logHead + " WARN]:")], args, false)); | ||
}, | ||
@@ -39,3 +43,3 @@ error: function () { | ||
} | ||
console.log.apply(console, __spreadArray([chalk_1.default.red("[" + logHead + " ERROR]:")], args)); | ||
console.log.apply(console, __spreadArray([chalk_1.default.red("[" + logHead + " ERROR]:")], args, false)); | ||
}, | ||
@@ -47,3 +51,3 @@ success: function () { | ||
} | ||
console.log.apply(console, __spreadArray([chalk_1.default.green("[" + logHead + " SUCCESS]:")], args)); | ||
console.log.apply(console, __spreadArray([chalk_1.default.green("[" + logHead + " SUCCESS]:")], args, false)); | ||
} | ||
@@ -77,2 +81,3 @@ }; | ||
var findOut = false; | ||
destPath = path_1.default.join(destPath, '/'); | ||
findOut = execa_1.default.sync('find', [destPath, '-inum', fileNumber]).stdout; | ||
@@ -79,0 +84,0 @@ return findOut |
@@ -69,16 +69,16 @@ "use strict"; | ||
function checkSaveMode(saveMode) { | ||
index_1.warning([0, 1].indexOf(saveMode) === -1, '保存模式只能设置为0/1', '当前配置为', saveMode); | ||
(0, index_1.warning)([0, 1].indexOf(saveMode) === -1, '保存模式只能设置为0/1', '当前配置为', saveMode); | ||
} | ||
function checkFindLevel(level) { | ||
index_1.warning(Number.isNaN(level), '查找的最大层级maxFindLevel必须设置为数字', '当前配置为', level); | ||
(0, index_1.warning)(Number.isNaN(level), '查找的最大层级maxFindLevel必须设置为数字', '当前配置为', level); | ||
if (level > 6) { | ||
index_1.log.warn('最大层级maxFindLevel大于6 可能会有性能问题! 请根据情况自行处理'); | ||
} | ||
index_1.warning(level < 1, '保存的最大层级maxFindLevel不能小于1', '当前配置为', level); | ||
(0, index_1.warning)(level < 1, '保存的最大层级maxFindLevel不能小于1', '当前配置为', level); | ||
} | ||
function checkDirectory(source, dest) { | ||
index_1.warning(!source || !dest, '必须指定原地址和目标地址'); | ||
index_1.warning(!fs_extra_1.default.existsSync(source), '源地址不存在,请检查路径是否正确'); | ||
(0, index_1.warning)(!source || !dest, '必须指定原地址和目标地址'); | ||
(0, index_1.warning)(!fs_extra_1.default.existsSync(source), '源地址不存在,请检查路径是否正确'); | ||
fs_extra_1.default.ensureDirSync(dest); | ||
index_1.warning(source === dest, '源地址和目标地址不能相同'); | ||
(0, index_1.warning)(source === dest, '源地址和目标地址不能相同'); | ||
} | ||
@@ -97,3 +97,3 @@ function parseInput(input, isDelete) { | ||
if (!isDelete) return [3 /*break*/, 2]; | ||
return [4 /*yield*/, questions_1.deleteModeQuestion()]; | ||
return [4 /*yield*/, (0, questions_1.deleteModeQuestion)()]; | ||
case 1: | ||
@@ -117,7 +117,7 @@ answerDeleteMode = _b.sent(); | ||
if (!isDelete) return [3 /*break*/, 6]; | ||
return [4 /*yield*/, questions_1.deleteQuestion()]; | ||
return [4 /*yield*/, (0, questions_1.deleteQuestion)()]; | ||
case 5: | ||
answers = _b.sent(); | ||
saveRecords = paths.deleteConfig.read(); | ||
_a = questions_1.getSource(answers), finalSource = _a[0], finalSourceDir = _a[1]; | ||
_a = (0, questions_1.getSource)(answers), finalSource = _a[0], finalSourceDir = _a[1]; | ||
source = finalSource; | ||
@@ -159,3 +159,3 @@ sourceDir = finalSourceDir; | ||
_a = _c.sent(), source = _a.source, sourceDir = _a.sourceDir, isDeleteDir = _a.isDeleteDir, isSecondDir = _a.isSecondDir, dest = _a.dest; | ||
_b = parseConfig_1.default(configPath), mfl = _b.maxFindLevel, sm = _b.saveMode, ie = _b.includeExtname, ee = _b.excludeExtname, configSource = _b.source, configDest = _b.dest, configOpenCache = _b.openCache, configMkdirIfSingle = _b.mkdirIfSingle; | ||
_b = (0, parseConfig_1.default)(configPath), mfl = _b.maxFindLevel, sm = _b.saveMode, ie = _b.includeExtname, ee = _b.excludeExtname, configSource = _b.source, configDest = _b.dest, configOpenCache = _b.openCache, configMkdirIfSingle = _b.mkdirIfSingle; | ||
source = source || configSource; | ||
@@ -162,0 +162,0 @@ sourceDir = sourceDir || source; |
{ | ||
"name": "hlink", | ||
"version": "0.4.0", | ||
"version": "0.4.1", | ||
"description": "hlink", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
60382
1056