|
7 | 7 | COMMIT_MSG="$1" |
8 | 8 | fi |
9 | 9 |
|
10 | | -# === 切换到脚本所在目录(避免 VSCode 工作目录不同)=== |
11 | | -cd "$(dirname "$0")" |
12 | | - |
13 | 10 | # === 路径 === |
14 | 11 | TYP_FILE="notes/main.typ" |
15 | 12 | OUT_DIR="static/notes" |
16 | | -OUT_PDF="${OUT_DIR}/notes.pdf" |
17 | | - |
18 | | -mkdir -p "$OUT_DIR" |
| 13 | +OUT_FILE="${OUT_DIR}/notes.pdf" |
19 | 14 |
|
20 | | -# === Typst 编译(PDF) === |
21 | | -echo "📄 编译 Typst PDF..." |
22 | | -typst compile "$TYP_FILE" "$OUT_PDF" |
| 15 | +# === Windows 下 Typst 可执行文件 === |
| 16 | +TYPST_WIN_PATH="/c/Users/thinkbook-cxy/AppData/Local/Microsoft/WinGet/Packages/Typst.Typst_Microsoft.Winget.Source_8wekyb3d8bbwe/typst-x86_64-pc-windows-msvc/typst.exe" |
23 | 17 |
|
24 | | -if [ $? -ne 0 ]; then |
25 | | - echo "❌ Typst 编译失败" |
| 18 | +# === 检查 Typst === |
| 19 | +if [ -f "$TYPST_WIN_PATH" ]; then |
| 20 | + TYPST_CMD="$TYPST_WIN_PATH" |
| 21 | +elif command -v typst &> /dev/null; then |
| 22 | + TYPST_CMD="typst" |
| 23 | +else |
| 24 | + echo "❌ typst 未安装,请先安装 Typst CLI。" |
26 | 25 | exit 1 |
27 | 26 | fi |
28 | 27 |
|
29 | | -# === 记录 push 时间 === |
30 | | -PUSH_LOG=".last_push_time" |
| 28 | +mkdir -p "$OUT_DIR" |
| 29 | + |
| 30 | +echo "------------------------------------------------------" |
| 31 | +echo "📄 编译 Typst PDF 中..." |
| 32 | +echo "------------------------------------------------------" |
31 | 33 |
|
32 | | -# === 获取当前时间(秒)=== |
33 | | -NOW=$(date +%s) |
| 34 | +# === 编译 PDF === |
| 35 | +$TYPST_CMD compile "$TYP_FILE" "$OUT_FILE" |
| 36 | +EXITCODE=$? |
34 | 37 |
|
35 | | -# === 获取上次 push 时间 === |
36 | | -if [ -f "$PUSH_LOG" ]; then |
37 | | - LAST_PUSH=$(cat "$PUSH_LOG") |
38 | | -else |
39 | | - LAST_PUSH=0 |
| 38 | +if [ $EXITCODE -ne 0 ]; then |
| 39 | + echo "❌ Typst PDF 编译失败 (exit $EXITCODE)" |
| 40 | + exit 1 |
40 | 41 | fi |
41 | 42 |
|
42 | | -# 冷却时间:600 秒 = 10 分钟 |
43 | | -COOL_DOWN=600 |
| 43 | +echo "✅ PDF 已输出到: $OUT_FILE" |
| 44 | + |
| 45 | +# === Git 操作 === |
| 46 | +echo "📦 执行 git add/commit/push" |
44 | 47 |
|
45 | | -# === Git: add & commit === |
46 | | -git add "$TYP_FILE" "$OUT_PDF" |
| 48 | +git add "$TYP_FILE" "$OUT_FILE" |
47 | 49 |
|
48 | 50 | git commit -m "$COMMIT_MSG" |
49 | 51 | if [ $? -ne 0 ]; then |
50 | | - echo "ℹ️ 没变化,不需要 commit/push。" |
| 52 | + echo "ℹ️ 没有变化,无需 push。" |
51 | 53 | exit 0 |
52 | 54 | fi |
53 | 55 |
|
54 | | -# === 判断是否需要 push === |
55 | | -SINCE_PUSH=$(( NOW - LAST_PUSH )) |
56 | | - |
57 | | -if [ "$SINCE_PUSH" -lt "$COOL_DOWN" ]; then |
58 | | - echo "⏳ 最近 $((SINCE_PUSH/60)) 分钟内 push 过(冷却时间 10 分钟)" |
59 | | - echo "✅ 本地 commit 完成,但暂时不 push。" |
60 | | - exit 0 |
61 | | -fi |
62 | | - |
63 | | -# === Push === |
64 | | -echo "🚀 正在 push 到 GitHub..." |
65 | 56 | git push |
66 | | - |
67 | 57 | if [ $? -eq 0 ]; then |
68 | | - echo "$NOW" > "$PUSH_LOG" |
69 | | - echo "✅ Push 完成!并更新 push 时间记录。" |
| 58 | + echo "✅ Push 完成!GitHub Pages 将自动部署。" |
70 | 59 | else |
71 | 60 | echo "❌ Push 失败,请检查网络或权限。" |
72 | 61 | fi |
0 commit comments