60 lines
2.1 KiB
Bash
Executable File
60 lines
2.1 KiB
Bash
Executable File
#!/bin/zsh
|
|
|
|
set -euo pipefail
|
|
|
|
script_dir=${0:A:h}
|
|
catalog_dir=${script_dir:h}
|
|
outputs_dir=${catalog_dir:h}
|
|
bundle_dir="$outputs_dir/Calculet-NPU-analysis-bundle-20260801"
|
|
image="$bundle_dir/remote-export/Calculet-NPU-Linux-case-sensitive-views.sparsebundle"
|
|
case_view="$bundle_dir/remote-export/extracted-case-sensitive"
|
|
|
|
if ! mount | grep -Fq " on $case_view "; then
|
|
"$script_dir/挂载大小写敏感视图.command"
|
|
fi
|
|
|
|
main_tmp=$(mktemp "$catalog_dir/.main-index.XXXXXX")
|
|
case_tmp=$(mktemp "$catalog_dir/.case-index.XXXXXX")
|
|
link_tmp=$(mktemp "$catalog_dir/.link-index.XXXXXX")
|
|
trap 'rm -f "$main_tmp" "$case_tmp" "$link_tmp"' EXIT
|
|
|
|
print -r -- $'类型\t字节数\tmtime_epoch\t相对路径' > "$main_tmp"
|
|
find "$bundle_dir" \
|
|
\( -path "$image" -o -path "$case_view" \) -prune \
|
|
-o -exec stat -f $'%HT\t%z\t%m\t%N' {} + \
|
|
| sed "s#$outputs_dir/##" >> "$main_tmp"
|
|
|
|
image_bytes=$(du -sk "$image" | awk '{printf "%.0f", $1 * 1024}')
|
|
printf 'sparsebundle\t%s\t%s\t%s\n' \
|
|
"$image_bytes" \
|
|
"$(stat -f %m "$image")" \
|
|
"Calculet-NPU-analysis-bundle-20260801/remote-export/Calculet-NPU-Linux-case-sensitive-views.sparsebundle" \
|
|
>> "$main_tmp"
|
|
|
|
print -r -- $'类型\t字节数\tmtime_epoch\t相对路径' > "$case_tmp"
|
|
find "$case_view" -exec stat -f $'%HT\t%z\t%m\t%N' {} + \
|
|
| sed -e "s#$case_view/##" -e "s#$case_view#.#" >> "$case_tmp"
|
|
|
|
print -r -- $'统一入口\t相对目标\t状态' > "$link_tmp"
|
|
find "$catalog_dir" -type l -print \
|
|
| LC_ALL=C sort \
|
|
| while IFS= read -r entry; do
|
|
rel=${entry#$catalog_dir/}
|
|
target=$(readlink "$entry")
|
|
if [[ -e "$entry" ]]; then
|
|
state="OK"
|
|
else
|
|
state="BROKEN"
|
|
fi
|
|
printf '%s\t%s\t%s\n' "$rel" "$target" "$state"
|
|
done >> "$link_tmp"
|
|
|
|
mv "$main_tmp" "$catalog_dir/主采集包全文件索引.tsv"
|
|
mv "$case_tmp" "$catalog_dir/大小写敏感视图全文件索引.tsv"
|
|
mv "$link_tmp" "$catalog_dir/统一目录链接清单.tsv"
|
|
trap - EXIT
|
|
|
|
print -r -- "Updated: $catalog_dir/主采集包全文件索引.tsv"
|
|
print -r -- "Updated: $catalog_dir/大小写敏感视图全文件索引.tsv"
|
|
print -r -- "Updated: $catalog_dir/统一目录链接清单.tsv"
|