diff --git a/factorio/install_mods.sh b/factorio/install_mods.sh index 39c547b..da77e6e 100755 --- a/factorio/install_mods.sh +++ b/factorio/install_mods.sh @@ -8,6 +8,15 @@ for mod in $mods; do mod_data=$(curl -s https://mods.factorio.com/api/mods/$mod) download_url=$(<<<$mod_data jq -r ".releases[-1].download_url") file_name=$(<<<$mod_data jq -r ".releases[-1].file_name") - sha1=$(<<<$mod_data jq -r ".releases[-1].sha1") # TODO - [ -f $download_dir/$file_name ] || curl --location --no-clobber --output $download_dir/$file_name "https://mods.factorio.com/$download_url?username=$username&token=$token" + sha1=$(<<<$mod_data jq -r ".releases[-1].sha1") + if [ -f $download_dir/$file_name ]; then + current_sha1=$(sha1sum $download_dir/$file_name | awk '{print $1}') + if [[ $current_sha1 = $sha1 ]]; then + continue + else + echo $current_sha1 $sha1 + >&2 echo "Checksum mismatch; re-downloading" + fi + fi + curl --location --output $download_dir/$file_name "https://mods.factorio.com/$download_url?username=$username&token=$token" done