Update build.js
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const crypto = require('crypto');
|
const crypto = require('crypto');
|
||||||
|
const { execSync } = require('child_process');
|
||||||
|
|
||||||
// 在文件开头添加全局变量
|
// 在文件开头添加全局变量
|
||||||
const pathingDirsWithoutIcon = new Set();
|
const pathingDirsWithoutIcon = new Set();
|
||||||
@@ -12,6 +13,17 @@ function calculateSHA1(filePath) {
|
|||||||
return hashSum.digest('hex');
|
return hashSum.digest('hex');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getGitTimestamp(filePath) {
|
||||||
|
try {
|
||||||
|
// 获取最后一次提交时间(ISO 格式)
|
||||||
|
const iso = execSync(`git log -1 --format=\"%ci\" -- "${filePath}"`, { encoding: 'utf8' }).trim();
|
||||||
|
return new Date(iso);
|
||||||
|
} catch (e) {
|
||||||
|
console.warn(`无法通过 Git 获取时间: ${filePath}`, e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function convertNewlines(text) {
|
function convertNewlines(text) {
|
||||||
return text.replace(/\\n/g, '\n');
|
return text.replace(/\\n/g, '\n');
|
||||||
}
|
}
|
||||||
@@ -72,10 +84,12 @@ function extractInfoFromPathingFile(filePath, parentFolders) {
|
|||||||
|
|
||||||
const contentObj = JSON.parse(content);
|
const contentObj = JSON.parse(content);
|
||||||
|
|
||||||
// 提取版本字段,若不存在则使用创建时间
|
// 提取版本字段,若不存在则使用上传时间,还不存在就使用 SHA
|
||||||
const version = contentObj.info && contentObj.info.version
|
let version = contentObj.info && contentObj.info.version;
|
||||||
? contentObj.info.version
|
if (!version) {
|
||||||
: : `${formatTime(stats.birthtime)}_${formatTime(stats.mtime)}`;
|
const gitDate = getGitTimestamp(filePath);
|
||||||
|
version = gitDate ? formatTime(gitDate) : calculateSHA1(filePath).substring(0, 7);
|
||||||
|
}
|
||||||
|
|
||||||
let tags = parentFolders.slice(2)
|
let tags = parentFolders.slice(2)
|
||||||
.filter(tag => !tag.includes('@'))
|
.filter(tag => !tag.includes('@'))
|
||||||
|
|||||||
Reference in New Issue
Block a user