t-comm
Version:
专业、稳定、纯粹的工具库
61 lines (54 loc) • 2.35 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var fs = require('fs');
var path = require('path');
var node_nodeCommand = require('../node/node-command.js');
require('@babel/runtime/helpers/typeof');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
/**
* 检测当前是否为Windows环境
*/
function isWindows() {
return process.platform === 'win32';
}
function checkGitClean(dir) {
if (!fs__default["default"].existsSync(dir)) {
console.error("Not Exist ".concat(dir));
return;
}
var list = fs__default["default"].readdirSync(dir);
// eslint-disable-next-line @typescript-eslint/no-require-imports
var chalk = require('chalk');
list.forEach(function (file) {
var subDir = path__default["default"].resolve(dir, file);
var dotGit = path__default["default"].resolve(subDir, '.git');
var isGitRepo = fs__default["default"].existsSync(dotGit);
if (!isGitRepo) ; else {
if (isWindows()) {
// Windows兼容:使用git status --porcelain检查工作区状态
var statusOutput = node_nodeCommand.execCommand('git status --porcelain', subDir, 'pipe');
if (statusOutput.trim()) {
console.log(chalk.red('[not clean] '), subDir);
}
// Windows兼容:检查是否有未推送的提交
var aheadCount = node_nodeCommand.execCommand('git rev-list --count @{u}..HEAD 2>/dev/null || echo 0', subDir, 'pipe');
if (aheadCount.trim() && parseInt(aheadCount.trim(), 10) > 0) {
console.log(chalk.blue('[not push]'), subDir);
}
} else {
// Unix/Linux/macOS版本:保持原有命令
var res = node_nodeCommand.execCommand('git status | grep -c "nothing to commit, working tree clean" || true', subDir, 'pipe');
if (res != '1') {
console.log(chalk.red('[not clean] '), subDir);
}
var isNotPush = node_nodeCommand.execCommand('git status | grep -c "Your branch is ahead of" || true', subDir, 'pipe');
if (isNotPush == '1') {
console.log(chalk.blue('[not push]'), subDir);
}
}
}
});
}
exports.checkGitClean = checkGitClean;