mirror of
https://github.com/HappyLifeOk/cc-3-8-x-mcp.git
synced 2026-06-10 17:56:47 +00:00
60 lines
2.1 KiB
JavaScript
60 lines
2.1 KiB
JavaScript
|
|
// ============================================================
|
|||
|
|
// cli/fix-borders-cmd.js — fix-borders 子命令
|
|||
|
|
//
|
|||
|
|
// 用法:
|
|||
|
|
// cocos-mcp-cli fix-borders [--project <dir>] [--dry-run]
|
|||
|
|
//
|
|||
|
|
// 修复 Cocos 重启把图片九宫格 border(subMetas.*.userData.border*)重置成 0 的 meta:
|
|||
|
|
// 扫 git 改动的 .meta,把「git 里有值、工作区被清 0」的 border 还原成 git 的值。
|
|||
|
|
// 只动 border 字段、保留 meta 其它改动。
|
|||
|
|
// --dry-run 只预览不写;--project 指定项目路径(默认当前目录)。
|
|||
|
|
// ============================================================
|
|||
|
|
|
|||
|
|
'use strict';
|
|||
|
|
|
|||
|
|
const { fixResetBorders } = require('../editor/fix-borders.js');
|
|||
|
|
|
|||
|
|
function die(msg) { process.stderr.write('Error: ' + msg + '\n'); process.exit(1); }
|
|||
|
|
|
|||
|
|
function cmdFixBorders(argv) {
|
|||
|
|
let project = process.cwd();
|
|||
|
|
let dryRun = false;
|
|||
|
|
|
|||
|
|
for (let i = 0; i < argv.length; i++) {
|
|||
|
|
const a = argv[i];
|
|||
|
|
if (a === '--dry-run') {
|
|||
|
|
dryRun = true;
|
|||
|
|
} else if (a === '--project' || a === '-p') {
|
|||
|
|
project = argv[++i];
|
|||
|
|
} else if (a === '--help' || a === '-h') {
|
|||
|
|
process.stdout.write(
|
|||
|
|
'cocos-mcp-cli fix-borders — 修复 Cocos 重启把九宫格 border 重置成 0 的 meta\n\n' +
|
|||
|
|
' --project, -p <dir> 项目路径(git 仓库或其子目录,默认当前目录)\n' +
|
|||
|
|
' --dry-run 只预览将还原哪些,不写文件\n\n' +
|
|||
|
|
'原理:扫 git 改动的 .meta,把「git 有值、工作区被清 0」的 border 还原成 git 的值。\n');
|
|||
|
|
return;
|
|||
|
|
} else {
|
|||
|
|
die('未知参数 "' + a + '"');
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
let r;
|
|||
|
|
try {
|
|||
|
|
r = fixResetBorders(project, { dryRun: dryRun });
|
|||
|
|
} catch (e) {
|
|||
|
|
die(e.message);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
process.stdout.write(
|
|||
|
|
(dryRun ? '[dry-run] ' : '') +
|
|||
|
|
'扫描 ' + r.scanned + ' 个改动 meta,还原 border:' +
|
|||
|
|
r.fixedFiles + ' 个 meta / ' + r.fixedFrames + ' 个 sprite-frame\n');
|
|||
|
|
|
|||
|
|
if (r.details.length) {
|
|||
|
|
process.stdout.write(r.details.slice(0, 50).join('\n') + '\n');
|
|||
|
|
if (r.details.length > 50) process.stdout.write('...(共 ' + r.details.length + ' 处,此处只列前 50)\n');
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
module.exports = { cmdFixBorders };
|