♻️ refactor(runner): simplify shell helpers and workflow scripts

This commit is contained in:
csh
2026-05-22 13:50:36 +08:00
parent 40fa747a94
commit ebd0f94053
9 changed files with 101 additions and 116 deletions
-8
View File
@@ -50,14 +50,6 @@ build_mirror_path() {
printf '%s/%s/%s.git\n' "${mirror_root}" "${owner}" "${repo_name}"
}
build_mirror_lock_path() {
local mirror_root=$1
local owner=$2
local repo_name=$3
printf '%s.lock\n' "$(build_mirror_path "${mirror_root}" "${owner}" "${repo_name}")"
}
build_job_workspace_root() {
local workspace_root=$1
local owner=$2
+12 -12
View File
@@ -433,20 +433,20 @@ jobs:
echo ""
# 构建排除参数
EXCLUDE_PARAMS=""
EXCLUDE_FIND_ARGS=()
IFS=',' read -ra EXCLUDES <<< "${{ env.EXCLUDE_DIRS }}"
for dir in "${EXCLUDES[@]}"; do
EXCLUDE_PARAMS="$EXCLUDE_PARAMS -not -path '*/$dir/*'"
EXCLUDE_FIND_ARGS+=(-not -path "*/$dir/*")
done
# 获取所有文件
echo "🔍 扫描文件..."
# 统计总文件数
TOTAL_FILES=$(eval "find . -type f $EXCLUDE_PARAMS" | wc -l)
TOTAL_FILES=$(find . -type f "${EXCLUDE_FIND_ARGS[@]}" | wc -l)
# 统计总代码行数(排除空行)
TOTAL_CODE=$(eval "find . -type f $EXCLUDE_PARAMS -exec grep -cHv '^[[:space:]]*$' {} + 2>/dev/null" | awk -F: '{sum+=$2} END {print sum+0}')
TOTAL_CODE=$(find . -type f "${EXCLUDE_FIND_ARGS[@]}" -exec grep -cHv '^[[:space:]]*$' {} + 2>/dev/null | awk -F: '{sum+=$2} END {print sum+0}')
echo "📊 统计结果:"
echo " - 总文件数: $TOTAL_FILES"
@@ -489,10 +489,10 @@ jobs:
mkdir -p /tmp/lang_stats
# 构建排除参数
EXCLUDE_PARAMS=""
EXCLUDE_FIND_ARGS=()
IFS=',' read -ra EXCLUDES <<< "${{ env.EXCLUDE_DIRS }}"
for dir in "${EXCLUDES[@]}"; do
EXCLUDE_PARAMS="$EXCLUDE_PARAMS -not -path '*/$dir/*'"
EXCLUDE_FIND_ARGS+=(-not -path "*/$dir/*")
done
LANGUAGE_COUNT=0
@@ -507,22 +507,22 @@ jobs:
echo "🔍 统计 $display_name..."
# 构建扩展名查找条件
FIND_CONDITIONS=""
LANG_FIND_ARGS=()
IFS=',' read -ra EXTS <<< "$extensions"
for ext in "${EXTS[@]}"; do
if [ -z "$FIND_CONDITIONS" ]; then
FIND_CONDITIONS="-name '*.$ext'"
if [ "${#LANG_FIND_ARGS[@]}" -eq 0 ]; then
LANG_FIND_ARGS+=(-name "*.$ext")
else
FIND_CONDITIONS="$FIND_CONDITIONS -o -name '*.$ext'"
LANG_FIND_ARGS+=(-o -name "*.$ext")
fi
done
# 统计文件数
FILE_COUNT=$(eval "find . -type f \( $FIND_CONDITIONS \) $EXCLUDE_PARAMS" | wc -l)
FILE_COUNT=$(find . -type f \( "${LANG_FIND_ARGS[@]}" \) "${EXCLUDE_FIND_ARGS[@]}" | wc -l)
if [ "$FILE_COUNT" -gt 0 ]; then
# 统计代码行数
CODE_LINES=$(eval "find . -type f \( $FIND_CONDITIONS \) $EXCLUDE_PARAMS -exec grep -cHv '^[[:space:]]*$' {} + 2>/dev/null" | awk -F: '{sum+=$2} END {print sum+0}')
CODE_LINES=$(find . -type f \( "${LANG_FIND_ARGS[@]}" \) "${EXCLUDE_FIND_ARGS[@]}" -exec grep -cHv '^[[:space:]]*$' {} + 2>/dev/null | awk -F: '{sum+=$2} END {print sum+0}')
# 只保存超过阈值的语言
if [ "$CODE_LINES" -ge "${{ env.MIN_LINES_THRESHOLD }}" ]; then