9 Commits
Author SHA1 Message Date
admin ee32bfd2ec Merge pull request '釋出:三支技能的目錄頁改版、收尾事件回報、連結驗證與暫存區孤兒掃描' (#37) from develop into master
Reviewed-on: #37
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-09-04 05:02:00 +00:00
admin dc5626c6c0 Merge pull request 'release: wiki 目錄頁專用存取庫、HASH 完整 40 碼、閘門依 CLI 分流' (#32) from develop into master
Reviewed-on: #32
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-09-02 04:21:02 +00:00
admin 089d709ca4 Merge pull request '釋出 jsc-assist 的 marketplace 條目' (#30) from develop into master
Reviewed-on: #30
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-09-01 04:57:39 +00:00
admin 5d9ded2063 Merge pull request '釋出 jsc-log 0.1.4:新增四支技能的行為清單' (#26) from develop into master
Reviewed-on: #26
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-08-31 08:18:57 +00:00
admin b62203b271 Merge pull request 'chore(release): 放行技能組稽核修正到預設分支' (#23) from develop into master
Reviewed-on: #23
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-08-31 03:54:40 +00:00
admin 037feb1b18 Merge pull request 'release: 發布 jsc-log 相依版本宣告' (#21) from develop into master
Reviewed-on: #21
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-08-28 06:52:03 +00:00
admin 5ae9d869db Merge pull request 'release: v0.1.1 develop 到 master' (#18) from develop into master
Reviewed-on: #18
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-08-27 04:14:22 +00:00
admin 123e5a83ef Merge pull request 'release: develop 併入 master(report)' (#15) from develop into master
Reviewed-on: #15
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-08-26 03:00:00 +00:00
admin 76bddf1630 Merge pull request 'log 0.0.9 發佈:工作日誌待寫入暫存' (#13) from develop into master
Reviewed-on: #13
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-08-26 01:33:44 +00:00
+8 -44
View File
@@ -4,20 +4,11 @@
# 用法:
# worklog-target.sh <hash> [page|contents|all]
# worklog-target.sh friday [基準日期 yyyy-MM-dd]
# worklog-target.sh week [基準日期 yyyy-MM-dd]
#
# friday 印出一行 yyyy-MM-dd:基準日期所在工作週的週五(基準日期省略時用今天)。
# 週界不在這裡算,一律問 report-range.sh weekly——週一起算的 ISO 週定義只有那一支說了算,
# 兩邊各算一次就會在跨月、跨年的那一週各走各的。這裡只做「週一加四天」這一步。
#
# week 印出一行 yyyy-MM-Wn(例:輸入 2026-08-31 或 2026-09-06 都印出 2026-09-W1;
# 輸入 2026-09-11 印出 2026-09-W2)。規則:
# 1. 先用 friday_of_week 取出該工作週的週五
# 2. yyyy-MM 一律取週五那天的月份,不看週一——一週橫跨兩個月時(例如週一在八月、
# 週日在九月),worklog 頁內容照週五整理,跨月的那一週不該被算進週一那個月
# 3. n 不是 ISO 週次,是「當月第幾個週五」:同月份的週五彼此相距固定 7 天,
# (日期-1)/7 取整數再加 1 就是第幾個,不必逐週從月初數起
#
# 結束碼: 0=成功 2=用法錯誤 4=系統的 date 不支援日期運算(由 report-range.sh 判定)
set -eu
@@ -28,7 +19,6 @@ usage() {
用法:
worklog-target.sh <hash> [page|contents|all] 組出 LOG_{HASH} 與 LOG_CONTENTS
worklog-target.sh friday [yyyy-MM-dd] 印出該工作週的週五日期
worklog-target.sh week [yyyy-MM-dd] 印出該工作週的 yyyy-MM-Wn
結束碼: 0=成功 2=用法錯誤 4=系統的 date 不支援日期運算
EOF
exit 2
@@ -50,43 +40,17 @@ add_days() { # $1=yyyy-MM-dd $2=要加的天數
[ "$#" -ge 1 ] || usage
[ "$#" -le 2 ] || usage
# 檢查層:擋掉格式錯誤的基準日期,不算日期。$1=基準日期(例:2026-08-31,可為空)
# 1. 空字串 -> 放行,呼叫端自己決定要不要用今天
# 2. yyyy-MM-dd -> 放行
# 3. 其他任何寫法 -> 印錯誤訊息並 exit 2,不猜使用者的意思
check_base_format() {
case "${1:-}" in
'') ;;
[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]) ;;
*) echo "基準日期格式要是 yyyy-MM-dd:$1" >&2; exit 2 ;;
esac
}
# 邏輯層:算出基準日期所在工作週的週五。$1=基準日期(例:2026-08-31,可為空,
# 空字串代表用今天)-> 該工作週的週五 yyyy-MM-dd(例:2026-09-04)
# 1. 格式檢查交給 check_base_format,格式錯誤就地中止,不進到下一步
# 2. 呼叫 report-range.sh weekly 取得該工作週的週一
# 3. 週一加 4 天就是週五
friday_of_week() {
base="${1:-}"
check_base_format "$base"
if [ "$1" = friday ]; then
base="${2:-}"
if [ -n "$base" ]; then
case "$base" in
[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]) ;;
*) echo "基準日期格式要是 yyyy-MM-dd:$base" >&2; exit 2 ;;
esac
fi
range=$(sh "$HERE/report-range.sh" weekly ${base:+"$base"}) || exit $?
monday=$(printf '%s\n' "$range" | cut -f1)
add_days "$monday" 4
}
if [ "$1" = friday ]; then
friday_of_week "${2:-}"
exit 0
fi
if [ "$1" = week ]; then
friday=$(friday_of_week "${2:-}")
month=$(printf '%s' "$friday" | cut -c1-7)
day=$(printf '%s' "$friday" | cut -c9-10)
day=${day#0} # 去掉前導零:dash 的 $(()) 沒有 10# 進位前綴語法,前導零會被誤判成八進位
nth=$(( (day - 1) / 7 + 1 ))
printf '%s-W%s\n' "$month" "$nth"
exit 0
fi