Files
cn-rdms/scripts/commit.ps1

93 lines
1.9 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

$ErrorActionPreference = 'Stop'
function Select-Option {
param(
[string]$Title,
[string[]]$Options
)
while ($true) {
Write-Host ""
Write-Host $Title
for ($i = 0; $i -lt $Options.Length; $i++) {
Write-Host ("{0}. {1}" -f ($i + 1), $Options[$i])
}
$inputValue = Read-Host "请输入序号"
$index = 0
if ([int]::TryParse($inputValue, [ref]$index) -and $index -ge 1 -and $index -le $Options.Length) {
return $Options[$index - 1]
}
Write-Host "输入无效,请重新选择。"
}
}
$repoRoot = Resolve-Path (Join-Path $PSScriptRoot '..')
if (-not (git -C $repoRoot rev-parse --is-inside-work-tree 2>$null)) {
throw "当前目录不是 Git 仓库。"
}
git -C $repoRoot diff --cached --quiet
if ($LASTEXITCODE -eq 0) {
throw "当前没有已暂存的改动,请先执行 git add。"
}
$types = @(
'feat',
'feat-wip',
'fix',
'docs',
'typo',
'style',
'refactor',
'perf',
'optimize',
'test',
'build',
'ci',
'chore',
'revert'
)
$scopes = @(
'system',
'gateway',
'framework',
'common',
'security',
'web',
'mybatis',
'redis',
'mq',
'rpc',
'sql',
'deps',
'other'
)
$type = Select-Option -Title '请选择提交类型 type' -Options $types
$scope = Select-Option -Title '请选择提交范围 scope' -Options $scopes
while ($true) {
$description = (Read-Host '请输入提交描述').Trim()
if ($description) {
break
}
Write-Host "描述不能为空,请重新输入。"
}
$message = "{0}({1}): {2}" -f $type, $scope, $description
Write-Host ""
Write-Host "提交信息预览:$message"
$confirm = Read-Host '确认提交请输入 y取消请输入其他任意内容'
if ($confirm -ne 'y' -and $confirm -ne 'Y') {
Write-Host '已取消提交。'
exit 1
}
git -C $repoRoot commit -m $message