Files
dotfiles/.local/bin/nixos-todo/fa_dd_download

63 lines
1.8 KiB
Plaintext
Raw Normal View History

2025-04-03 14:32:47 +01:00
#! /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