machine-config/factorio/install_mods.sh

23 lines
1,020 B
Bash
Executable file

#!/usr/bin/env nix-shell
#! nix-shell -i bash -p bash curl jq
mods="Krastorio2 Krastorio2Assets flib Big_Brother AtomicArtillery AutoDeconstruct nixie-tubes"
download_dir=./mods
username=$(cat ../keys.toml | grep factorio-username | cut -d'"' -f2)
token=$(cat ../keys.toml | grep factorio-token | cut -d'"' -f2)
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")
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