一个hexo一键推送的脚本
2024-08-17 21:42:00

该脚本由ChatGPT、Claude联合调整而成,目前还是好用的。
运行于Win11下, .ps1后缀。

name.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64

# 设置执行环境为 UTF-8
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8

# 运行 hexo clean
hexo clean

# 设置LF和CRLF的转换, 这个好像不是这样搞的,算了。
git config --global core.autocrlf false

# 检查退出状态
if ($LASTEXITCODE -ne 0) {
Write-Host "hexo clean 失败,请检查错误日志。"
Exit 1
}

# 运行 hexo generate
hexo generate

# 检查退出状态
if ($LASTEXITCODE -ne 0) {
Write-Host "hexo generate 失败,请检查错误日志。"
Exit 1
}

# -------------------------------------------------
# # 运行 hexo deploy
# hexo deploy

# # 检查退出状态
# if ($LASTEXITCODE -ne 0) {
# Write-Host "hexo deploy 失败,请检查错误日志。"
# Exit 1
# }

# Write-Output "Hexo, 部署成功!"
# --------------------------------------------------
# 初始化变量
$deploySuccess = $false
$maxAttempts = 20 # 定义最大尝试次数
$attemptCount = 0

while (-not $deploySuccess -and $attemptCount -lt $maxAttempts) {

# 运行 hexo deploy
hexo deploy

# 检查退出状态
if ($LASTEXITCODE -eq 0) {
$deploySuccess = $true
Write-Output "Hexo 部署成功!"
} else {
Write-Host "hexo deploy 失败,请检查错误日志。"
$attemptCount++
Start-Sleep -Seconds 10 # 等待一段时间后重试
}
}

if (-not $deploySuccess) {
Write-Host "达到最大尝试次数,部署仍然失败。"
Exit 1
}


Prev
2024-08-17 21:42:00
Next