Skip to content

Commit b2333c6

Browse files
committed
added failsafes for compress yaml
1 parent 0f83872 commit b2333c6

1 file changed

Lines changed: 20 additions & 12 deletions

File tree

.github/workflows/compress.yml

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
- name: Install Tools
1919
run: |
2020
sudo apt-get update
21-
sudo apt-get install -y ffmpeg optipng jq
21+
sudo apt-get install -y ffmpeg optipng jq bc
2222
npm install -g svgo
2323
2424
- name: Initial Size
@@ -29,28 +29,36 @@ jobs:
2929
- name: Compress Audio
3030
run: |
3131
find . -type f -name "*.wav" -not -path "*/screenshots/*" | while read -r file; do
32-
sample_rate=$(ffprobe -v error -select_streams a:0 -show_entries stream=sample_rate -of default=noprint_wrappers=1:nokey=1 "$file")
32+
sample_rate=$(ffprobe -v error -select_streams a:0 -show_entries stream=sample_rate -of default=noprint_wrappers=1:nokey=1 "$file" || echo "unknown")
3333
if [ "$sample_rate" = "22050" ]; then
3434
echo "WAV already optimized, skipping: $file"
3535
else
3636
orig_size=$(stat -c%s "$file")
37-
ffmpeg -i "$file" -ac 1 -ar 22050 -y "${file%.*}.tmp.wav" > /dev/null 2>&1
38-
mv "${file%.*}.tmp.wav" "$file"
39-
new_size=$(stat -c%s "$file")
40-
echo "WAV Optimized: $file | $((orig_size / 1024))KB -> $((new_size / 1024))KB"
37+
if ffmpeg -i "$file" -ac 1 -ar 22050 -y "${file%.*}.tmp.wav" > /dev/null 2>&1; then
38+
mv "${file%.*}.tmp.wav" "$file"
39+
new_size=$(stat -c%s "$file")
40+
echo "WAV Optimized: $file | $((orig_size / 1024))KB -> $((new_size / 1024))KB"
41+
else
42+
echo "Failed to compress $file (might be corrupted/too short), skipping."
43+
rm -f "${file%.*}.tmp.wav"
44+
fi
4145
fi
4246
done
4347
4448
find . -type f -name "*.mp3" -not -path "*/screenshots/*" | while read -r file; do
45-
bitrate=$(ffprobe -v error -select_streams a:0 -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 "$file")
46-
if [ -n "$bitrate" ] && [ "$bitrate" -le 66000 ]; then
49+
bitrate=$(ffprobe -v error -select_streams a:0 -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 "$file" || echo "unknown")
50+
if [ "$bitrate" != "unknown" ] && [ "$bitrate" -le 66000 ]; then
4751
echo "MP3 already optimized, skipping: $file"
4852
else
4953
orig_size=$(stat -c%s "$file")
50-
ffmpeg -i "$file" -b:a 64k -y "${file%.*}.tmp.mp3" > /dev/null 2>&1
51-
mv "${file%.*}.tmp.mp3" "$file"
52-
new_size=$(stat -c%s "$file")
53-
echo "MP3 Optimized: $file | $((orig_size / 1024))KB -> $((new_size / 1024))KB"
54+
if ffmpeg -i "$file" -b:a 64k -y "${file%.*}.tmp.mp3" > /dev/null 2>&1; then
55+
mv "${file%.*}.tmp.mp3" "$file"
56+
new_size=$(stat -c%s "$file")
57+
echo "MP3 Optimized: $file | $((orig_size / 1024))KB -> $((new_size / 1024))KB"
58+
else
59+
echo "Failed to compress $file, skipping."
60+
rm -f "${file%.*}.tmp.mp3"
61+
fi
5462
fi
5563
done
5664

0 commit comments

Comments
 (0)