63 lines
1.8 KiB
Plaintext
63 lines
1.8 KiB
Plaintext
|
|
#! /bin/zsh
|
||
|
|
|
||
|
|
target_dir="/home/chris/.local/share/Dungeondraft/asset_packs"
|
||
|
|
download_dir="/home/chris/Downloads"
|
||
|
|
|
||
|
|
for file in $download_dir/FA_(Objects|Textures)_*.zip; do
|
||
|
|
dir=$(mktemp -d)
|
||
|
|
unzip -qq $file -d $dir
|
||
|
|
|
||
|
|
extracted=$(find "$dir" -type f -name "*.dungeondraft_pack")
|
||
|
|
|
||
|
|
if [[ -z "$extracted" ]]; then
|
||
|
|
echo "No .dungeondraft_pack file found in the ZIP."
|
||
|
|
rm -rf "$dir"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo "Extracted file: $extracted"
|
||
|
|
|
||
|
|
# Extract the version number from the filename
|
||
|
|
file=$(basename "$extracted")
|
||
|
|
basename=$(echo "$file" | grep -oP '^FA_[^_]+_[^_]+')
|
||
|
|
version_rx="v([0-9]+\.[0-9]+)"
|
||
|
|
if [[ "$file" =~ v([0-9]+\.[0-9]+) ]]; then
|
||
|
|
new_version=${match[1]}
|
||
|
|
else
|
||
|
|
echo "Could not extract version number from filename."
|
||
|
|
rm -rf "$fir"
|
||
|
|
continue
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo "New version detected: $new_version"
|
||
|
|
|
||
|
|
# Check for an existing file in the target directory
|
||
|
|
existing=$(ls "$target_dir"/"${basename}"_v*.dungeondraft_pack 2>/dev/null | head -n 1)
|
||
|
|
|
||
|
|
if [[ -n "$existing" ]]; then
|
||
|
|
existing_filename=$(basename "$existing")
|
||
|
|
if [[ "$existing_filename" =~ v([0-9]+\.[0-9]+) ]]; then
|
||
|
|
existing_version=${match[1]}
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo "Existing file found: $existing_filename (Version: $existing_version)"
|
||
|
|
|
||
|
|
if [[ "$existing_version" == "$new_version" ]]; then
|
||
|
|
echo "Same version already exists. No action taken."
|
||
|
|
rm -rf "$dir"
|
||
|
|
exit 0
|
||
|
|
else
|
||
|
|
echo "Different version detected. Removing old version."
|
||
|
|
rm -f "$existing"
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Move the new file to the target directory
|
||
|
|
mv "$extracted" "$target_dir"
|
||
|
|
|
||
|
|
echo "File moved to $target_dir: $filename"
|
||
|
|
|
||
|
|
# Clean up
|
||
|
|
rm -rf "$dir"
|
||
|
|
done
|