From 4ef3d5c55f772151ac0c16abc84119fb26940400 Mon Sep 17 00:00:00 2001 From: goldsquid Date: Fri, 19 Dec 2025 15:15:28 +0700 Subject: [PATCH] fix --- show-static-file-size.sh | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/show-static-file-size.sh b/show-static-file-size.sh index 3f1ac802..bb3d4f13 100755 --- a/show-static-file-size.sh +++ b/show-static-file-size.sh @@ -1,5 +1,8 @@ #!/bin/bash +BASEPATH="$(dirname "$0")" +static_file_list="$BASEPATH/static-file-path-list.txt" + # Read the JSON input and extract the list of keys keys=$(cat /root/rpc/$1.yml | yaml2json - | jq '.volumes' | jq -r 'keys[]') @@ -16,19 +19,31 @@ for key in $keys; do total_size=$((total_size + volume_size)) - while IFS= read -r path; do - # Check if the path exists - if [[ -e "$prefix/_data/$path" ]]; then - # Print the size of the file or directory - size=$(du -sL "$prefix/_data/$path" 2>/dev/null | awk '{print $1}') - static_size=$((static_size + size)) - # Format size in human-readable format - size_formatted=$(echo "$(( size * 1024 ))" | numfmt --to=iec --suffix=B --format="%.2f") - # Print the detected path with size to stderr (one per line) - echo "$size_formatted $prefix/_data/$path" >&2 + # Only check static files if the list exists + if [[ -f "$static_file_list" ]]; then + while IFS= read -r path; do + # Skip empty lines + [[ -z "$path" ]] && continue + + # Check if the path exists + if [[ -e "$prefix/_data/$path" ]]; then + # Print the size of the file or directory + size=$(du -sL "$prefix/_data/$path" 2>/dev/null | awk '{print $1}') + static_size=$((static_size + size)) + # Format size in human-readable format + size_formatted=$(echo "$(( size * 1024 ))" | numfmt --to=iec --suffix=B --format="%.2f") + # Print the detected path with size to stderr (one per line) + echo "$size_formatted $prefix/_data/$path" >&2 + fi + done < "$static_file_list" fi - done < static-file-path-list.txt done -ratio=$(bc -l <<< "scale=2; $static_size/$total_size") +# Calculate ratio, handling division by zero +if [[ $total_size -eq 0 ]]; then + ratio="0.00" +else + ratio=$(bc -l <<< "scale=2; $static_size/$total_size") +fi + echo "$ratio"