Skip to content

Commit 3dc9b4a

Browse files
committed
script: update git log fixes some bug
1 parent 50da267 commit 3dc9b4a

2 files changed

Lines changed: 19 additions & 6 deletions

File tree

compile_script/step06_update_git_log.sh

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,15 @@ git_folders=(openwrt immortalwrt lede feeds custompackages)
55

66
cd $GITHUB_WORKSPACE
77

8+
# Ensure the log file ends with a newline before appending new entries.
9+
# This prevents two repos from being concatenated into one line.
10+
ensure_log_trailing_newline() {
11+
local log_file="$1"
12+
if [ -f "$log_file" ] && [ -s "$log_file" ] && [ -n "$(tail -c 1 "$log_file" 2>/dev/null)" ]; then
13+
echo >> "$log_file"
14+
fi
15+
}
16+
817
# 初始化 release.txt
918
echo "[![](https://img.shields.io/github/downloads/smallprogram/OpenWrtAction/$release_tag/total?style=flat-square)](https://github.com/smallprogram/MyAction)"> release.txt
1019

@@ -105,13 +114,16 @@ for git_folder in "${git_folders[@]}"; do
105114
echo "$git_folder-$OUTPUT_FILE Begin git log update-----------------------------------------------------------"
106115
echo "SHAEnd:$SHA_End"
107116

117+
LOG_FILE="git_log/$git_folder/log"
118+
ensure_log_trailing_newline "$LOG_FILE"
119+
108120
# 检查 log 文件是否存在且是否包含 OUTPUT_FILE 条目
109-
SHA_Begin=$(grep "^${OUTPUT_FILE}:" "git_log/${git_folder}/log" | cut -d: -f2)
121+
SHA_Begin=$(grep "^${OUTPUT_FILE}:" "$LOG_FILE" | cut -d: -f2)
110122
echo "SHABegin:$SHA_Begin"
111123

112124
# 如果 log 文件不存在或为空,或者没有 OUTPUT_FILE 条目,初始化 log 文件
113-
if [ ! -f "git_log/$git_folder/log" ] || ! grep -q "^${OUTPUT_FILE}:" "git_log/$git_folder/log"; then
114-
echo "${OUTPUT_FILE}:${SHA_End}" >> "git_log/$git_folder/log"
125+
if [ ! -f "$LOG_FILE" ] || ! grep -q "^${OUTPUT_FILE}:" "$LOG_FILE"; then
126+
echo "${OUTPUT_FILE}:${SHA_End}" >> "$LOG_FILE"
115127
SHA_Begin=""
116128
fi
117129

@@ -123,7 +135,7 @@ for git_folder in "${git_folders[@]}"; do
123135
echo "<b> It is detected that $OUTPUT_FILE has an illegal SHA value. It is possible that $OUTPUT_FILE has git rebase behavior. The relevant git update log cannot be counted. Please wait for the next compilation time.</b>" >>"git_log/$git_folder/$OUTPUT_FILE.log"
124136
echo "" >>"git_log/$git_folder/$OUTPUT_FILE.log"
125137
echo "</details>" >>"git_log/$git_folder/$OUTPUT_FILE.log"
126-
sed -i "s/^${OUTPUT_FILE}:.*/${OUTPUT_FILE}:${SHA_End}/" "git_log/$git_folder/log"
138+
sed -i "s/^${OUTPUT_FILE}:.*/${OUTPUT_FILE}:${SHA_End}/" "$LOG_FILE"
127139
UPDATE_COUNT=$((UPDATE_COUNT + 1))
128140
elif [ -z "$SHA_Begin" ] || [ "$SHA_Begin" != "$SHA_End" ]; then
129141
echo "<details> <summary> <b>$TITLE_MESSAGE :rocket: </b> </summary>" >>"git_log/$git_folder/$OUTPUT_FILE.log"
@@ -150,7 +162,7 @@ for git_folder in "${git_folders[@]}"; do
150162
echo " |-----------------------------------|"
151163
echo " $OUTPUT_FILE has update log"
152164
echo " |-----------------------------------|"
153-
sed -i "s/^${OUTPUT_FILE}:.*/${OUTPUT_FILE}:${SHA_End}/" "git_log/$git_folder/log"
165+
sed -i "s/^${OUTPUT_FILE}:.*/${OUTPUT_FILE}:${SHA_End}/" "$LOG_FILE"
154166
UPDATE_COUNT=$((UPDATE_COUNT + 1))
155167
# else
156168
# # 没有更新的情况,生成默认日志

git_log/feeds/log

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ openwrt-passwall-packages:e1c6cf88a206fe64babc210761f9882143ec4b7f
33
openwrt-passwall:016a9416d71de45cad6026beb82be947a86ce4f9
44
openwrt-passwall2:54049fdc5444a9a38a796494272416625b3920a0
55
OpenClash:184daebfd78b6eb73868f795a5812dd187ad9a30
6-
OpenWrt-nikki:d12f89e27479517864a2bcb45219d44a4000525cluci-app-ghfu:122a629e0235023ad3c30030a9bff39a72664caf
6+
OpenWrt-nikki:d12f89e27479517864a2bcb45219d44a4000525c
7+
luci-app-ghfu:122a629e0235023ad3c30030a9bff39a72664caf

0 commit comments

Comments
 (0)