Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b6aa8e09a2 | ||
|
|
59c198fb06 |
+12
-7
@@ -339,11 +339,16 @@ case "$sub" in
|
|||||||
page="$analyze"
|
page="$analyze"
|
||||||
content=$(sh "$gitea" wiki-get "$wiki_repo" "$page" 2>/dev/null)
|
content=$(sh "$gitea" wiki-get "$wiki_repo" "$page" 2>/dev/null)
|
||||||
[ -n "$content" ] || missing_dep "讀不到分析頁 $wiki_repo 的 $page。"
|
[ -n "$content" ] || missing_dep "讀不到分析頁 $wiki_repo 的 $page。"
|
||||||
|
# markdown 表格用 \| 跳脫儲存格裡的字面 |(例如描述某個分隔符本身就是 |);
|
||||||
|
# 下面逐欄用 awk -F'|' 切列,不先把跳脫符換掉,這一格會多出一欄,
|
||||||
|
# 害同一列後面每一欄全部錯位。先把 \| 換成控制字元,切完欄位再也用不到它,不必換回來。
|
||||||
|
content=$(printf '%s' "$content" | sed $'s/\\\\|/\x01/g')
|
||||||
|
|
||||||
# WBS 表欄位(以 | 分隔,$1 是第一個 | 之前的空字串):
|
# WBS 表欄位(以 | 分隔,$1 是第一個 | 之前的空字串,$NF 是結尾 | 之後的空字串):
|
||||||
# $2=編號 $6=相依 $11=PR $12=狀態。
|
# $2=編號 $7=相依。層 0 比層 1 到 4 多一欄「工作證」,PR 與狀態的絕對欄號因此不同,
|
||||||
# 找列一律比數值,不比字串:範本固定兩位數補零(WP-08),但呼叫端或相依欄裡的寫法
|
# 一律從結尾往回數:倒數第一格是狀態、倒數第二格是 PR,兩種欄位數的表格都對得上。
|
||||||
# 不一定補零(WP-8);比字串會讓兩種寫法各自找不到對方那一列,誤判成「查不到」。
|
# 找列一律比數值,不比字串:範本固定把編號補零到兩位數,但呼叫端或相依欄裡的寫法
|
||||||
|
# 不一定補零;比字串會讓兩種寫法各自找不到對方那一列,誤判成「查不到」。
|
||||||
find_wp_row() { # $1=WP 編號(可帶或不帶前導零) -> 印出該列,找不到印空字串
|
find_wp_row() { # $1=WP 編號(可帶或不帶前導零) -> 印出該列,找不到印空字串
|
||||||
_n=$(printf '%s' "$1" | sed 's/^0*//'); [ -n "$_n" ] || _n=0
|
_n=$(printf '%s' "$1" | sed 's/^0*//'); [ -n "$_n" ] || _n=0
|
||||||
printf '%s\n' "$content" | awk -F'|' -v n="$_n" '
|
printf '%s\n' "$content" | awk -F'|' -v n="$_n" '
|
||||||
@@ -359,7 +364,7 @@ case "$sub" in
|
|||||||
[ -n "$row" ] || missing_dep "分析頁 $page 上找不到 WP-$wp_number 這一列,核對不了相依。"
|
[ -n "$row" ] || missing_dep "分析頁 $page 上找不到 WP-$wp_number 這一列,核對不了相依。"
|
||||||
self_wp=$(printf '%s' "$row" | awk -F'|' '{ w = $2; gsub(/^[ \t]+|[ \t]+$/, "", w); print w }')
|
self_wp=$(printf '%s' "$row" | awk -F'|' '{ w = $2; gsub(/^[ \t]+|[ \t]+$/, "", w); print w }')
|
||||||
|
|
||||||
deps=$(printf '%s' "$row" | awk -F'|' '{ d = $6; gsub(/^[ \t]+|[ \t]+$/, "", d); print d }')
|
deps=$(printf '%s' "$row" | awk -F'|' '{ d = $7; gsub(/^[ \t]+|[ \t]+$/, "", d); print d }')
|
||||||
case "$deps" in
|
case "$deps" in
|
||||||
''|-|無)
|
''|-|無)
|
||||||
echo 'status=ready'
|
echo 'status=ready'
|
||||||
@@ -392,11 +397,11 @@ case "$sub" in
|
|||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
dep_wp=$(printf '%s' "$dep_row" | awk -F'|' '{ w = $2; gsub(/^[ \t]+|[ \t]+$/, "", w); print w }')
|
dep_wp=$(printf '%s' "$dep_row" | awk -F'|' '{ w = $2; gsub(/^[ \t]+|[ \t]+$/, "", w); print w }')
|
||||||
dep_status=$(printf '%s' "$dep_row" | awk -F'|' '{ s = $12; gsub(/^[ \t]+|[ \t]+$/, "", s); print s }')
|
dep_status=$(printf '%s' "$dep_row" | awk -F'|' '{ s = $(NF-1); gsub(/^[ \t]+|[ \t]+$/, "", s); print s }')
|
||||||
if [ "$dep_status" = '已完成' ]; then
|
if [ "$dep_status" = '已完成' ]; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
dep_pr=$(printf '%s' "$dep_row" | awk -F'|' '{ print $11 }')
|
dep_pr=$(printf '%s' "$dep_row" | awk -F'|' '{ print $(NF-2) }')
|
||||||
pr_index=$(printf '%s' "$dep_pr" | sed -n 's#.*/pulls/\([0-9][0-9]*\).*#\1#p' | head -n1)
|
pr_index=$(printf '%s' "$dep_pr" | sed -n 's#.*/pulls/\([0-9][0-9]*\).*#\1#p' | head -n1)
|
||||||
if [ -z "$pr_index" ]; then
|
if [ -z "$pr_index" ]; then
|
||||||
unmet="${unmet}${unmet:+、}${dep_wp}(狀態「${dep_status:-未完成}」,還沒開 PR)"
|
unmet="${unmet}${unmet:+、}${dep_wp}(狀態「${dep_status:-未完成}」,還沒開 PR)"
|
||||||
|
|||||||
Reference in New Issue
Block a user