diff --git a/homebrew/brew-upgrade-manager.sh b/homebrew/brew-upgrade-manager.sh index cd36204..099409d 100644 --- a/homebrew/brew-upgrade-manager.sh +++ b/homebrew/brew-upgrade-manager.sh @@ -102,7 +102,7 @@ echo -e "\n${CYAN}>>> [2/2] Upgrading GUI Casks (brew upgrade --cask --greedy -- # 强制注入环境变量,确保终端输出依然保留 ANSI 颜色格式 export HOMEBREW_COLOR=1 - +@ # --- 终端宽度处理 --- # 固定宽度,避免动态识别终端列数导致 prompt 重绘异常。 export COLUMNS diff --git a/substore/rename.js b/substore/rename.js index 028757b..41d1599 100644 --- a/substore/rename.js +++ b/substore/rename.js @@ -800,6 +800,37 @@ async function operator(proxies) { ); }; + const compactRegionSequences = () => { + const indexesByRegion = Object.create(null); + + sequenceInfos.forEach((sequenceInfo, proxyIndex) => { + if (!sequenceInfo) return; + + const groupKey = `${subNames[proxyIndex]}\u0000${sequenceInfo.prefix}|${sequenceInfo.regionCode}`; + const regionIndexes = indexesByRegion[groupKey] || ( + indexesByRegion[groupKey] = [] + ); + regionIndexes.push(proxyIndex); + }); + + Object.keys(indexesByRegion).forEach(groupKey => { + const regionIndexes = indexesByRegion[groupKey]; + regionIndexes.forEach((proxyIndex, sequenceIndex) => { + const sequenceInfo = sequenceInfos[proxyIndex]; + const compactSequenceNumber = (sequenceIndex + 1) + .toString() + .padStart(2, '0'); + const compactSequenceInfo = { + ...sequenceInfo, + sequenceNumber: compactSequenceNumber + }; + + sequenceInfos[proxyIndex] = compactSequenceInfo; + normalizedCoreNames[proxyIndex] = withRegionSequence(compactSequenceInfo, compactSequenceNumber); + }); + }); + }; + const normalizeBilingualName = name => { const bilingualMatch = name.match(/^(.+?)\s*|\s*(.+)$/); if (!bilingualMatch) return name; @@ -891,6 +922,8 @@ async function operator(proxies) { sequenceInfos[proxyIndex] = sequenceInfo; }); + compactRegionSequences(); + normalizedCoreNames.forEach((normalizedCoreName, proxyIndex) => { const subName = subNames[proxyIndex]; const sequenceInfo = sequenceInfos[proxyIndex];