UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

61 lines (54 loc) 2.35 kB
'use strict'; 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;