nixpkgs/pkgs/by-name/fo/foundry/update-svm-lists.sh

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

48 lines
1.3 KiB
Bash
Raw Permalink Normal View History

#!/usr/bin/env bash
# This script updates the Solidity binary lists required by the svm-rs
# crate.
# TODO: Bundle this into an updater script
set -euo pipefail
# Get the directory of the current script
script_dir=$(dirname "$(realpath "$0")")
# Directory where the files will be downloaded
dir="${script_dir}/svm-lists"
# URLs of the files
urls=(
"https://binaries.soliditylang.org/macosx-amd64/list.json"
"https://binaries.soliditylang.org/linux-amd64/list.json"
)
# Create the directory (no error if it already exists)
mkdir -p "$dir"
# Function to extract filename from URL
extract_filename() {
url=$1
# Extract the parent directory name and append .json
echo "$(basename "$(dirname "$url")").json"
}
# Function to fix line endings and remove trailing newline
ensure_unix_format() {
file=$1
# Convert to Unix LF line endings and ensure there's no trailing newline
tr -d '\r' < "$file" | sed -e '$a\' > "${file}.tmp" && mv "${file}.tmp" "$file"
}
# Iterate over the URLs
for url in "${urls[@]}"; do
# Extract filename from URL
filename=$(extract_filename "$url")
# Download the file and fix line endings
echo "Fetching $url to $dir/$filename"
curl -sL "$url" -o "${dir}/${filename}"
ensure_unix_format "${dir}/${filename}"
done