48 lines
1.3 KiB
Bash
48 lines
1.3 KiB
Bash
![]() |
#!/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
|