2025-08-11 10:24:18 +02:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
2022-10-21 18:41:09 +00:00
|
|
|
build_function() {
|
|
|
|
|
rustup update
|
|
|
|
|
cargo install cross
|
|
|
|
|
|
|
|
|
|
|
2022-10-23 17:46:45 +00:00
|
|
|
echo -n "Building x86_64-linux-gnu"
|
2022-10-21 18:41:09 +00:00
|
|
|
cross build --release --target x86_64-unknown-linux-gnu
|
2022-10-23 17:46:45 +00:00
|
|
|
echo -n "Building x86_64-linux-musl"
|
2022-10-21 18:41:09 +00:00
|
|
|
cross build --release --target x86_64-unknown-linux-musl
|
2022-10-23 17:46:45 +00:00
|
|
|
echo -n "Building x86_64-freebsd"
|
2022-10-21 18:41:09 +00:00
|
|
|
cross build --release --target x86_64-unknown-freebsd
|
2022-10-23 17:46:45 +00:00
|
|
|
echo -n "Building aarch64-linux-gnu"
|
2022-10-21 18:41:09 +00:00
|
|
|
cross build --release --target aarch64-unknown-linux-gnu
|
2022-10-23 17:46:45 +00:00
|
|
|
echo -n "Building aarch64-linux-musl"
|
2022-10-21 18:41:09 +00:00
|
|
|
cross build --release --target aarch64-unknown-linux-musl
|
2022-10-23 17:46:45 +00:00
|
|
|
echo -n "Building x86_64-windows-gnu"
|
2022-10-21 18:41:09 +00:00
|
|
|
cross build --release --target x86_64-pc-windows-gnu
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
package_function() {
|
|
|
|
|
|
2025-08-11 10:24:18 +02:00
|
|
|
cd build || exit 1
|
2022-10-23 17:46:45 +00:00
|
|
|
mkdir x86_64-unknown-linux-gnu/
|
|
|
|
|
mkdir x86_64-unknown-linux-musl/
|
|
|
|
|
mkdir x86_64-unknown-freebsd/
|
|
|
|
|
mkdir x86_64-pc-windows-gnu/
|
|
|
|
|
mkdir aarch64-unknown-linux-gnu/
|
|
|
|
|
mkdir aarch64-unknown-linux-musl/
|
|
|
|
|
|
|
|
|
|
cp ../target/x86_64-unknown-linux-gnu/release/topgrade x86_64-unknown-linux-gnu/
|
|
|
|
|
cp ../target/x86_64-unknown-linux-musl/release/topgrade x86_64-unknown-linux-musl/
|
|
|
|
|
cp ../target/x86_64-unknown-freebsd/release/topgrade x86_64-unknown-freebsd/topgrade
|
|
|
|
|
cp ../target/aarch64-unknown-linux-gnu/release/topgrade aarch64-unknown-linux-gnu/topgrade
|
|
|
|
|
cp ../target/aarch64-unknown-linux-musl/release/topgrade aarch64-unknown-linux-musl/topgrade
|
|
|
|
|
cp ../target/x86_64-pc-windows-gnu/release/topgrade.exe x86_64-pc-windows-gnu/topgrade.exe
|
|
|
|
|
|
2025-08-11 10:24:18 +02:00
|
|
|
cd x86_64-unknown-linux-gnu/ || exit 1
|
|
|
|
|
tar -czf "../topgrade-${ans}-x86_64-linux-gnu.tar.gz" topgrade
|
2022-10-23 17:46:45 +00:00
|
|
|
cd ..
|
|
|
|
|
|
2025-08-11 10:24:18 +02:00
|
|
|
cd x86_64-unknown-linux-musl/ || exit 1
|
|
|
|
|
tar -czf "../topgrade-${ans}-x86_64-linux-musl.tar.gz" topgrade
|
2022-10-23 17:46:45 +00:00
|
|
|
cd ..
|
|
|
|
|
|
2025-08-11 10:24:18 +02:00
|
|
|
cd x86_64-unknown-freebsd/ || exit 1
|
|
|
|
|
tar -czf "../topgrade-${ans}-x86_64-freebsd.tar.gz" topgrade
|
2022-10-23 17:46:45 +00:00
|
|
|
cd ..
|
|
|
|
|
|
2025-08-11 10:24:18 +02:00
|
|
|
cd aarch64-unknown-linux-gnu/ || exit 1
|
|
|
|
|
tar -czf "../topgrade-${ans}-aarch64-linux-gnu.tar.gz" topgrade
|
2022-10-23 17:46:45 +00:00
|
|
|
cd ..
|
|
|
|
|
|
2025-08-11 10:24:18 +02:00
|
|
|
cd aarch64-unknown-linux-musl/ || exit 1
|
|
|
|
|
tar -czf "../topgrade-${ans}-aarch64-linux-musl.tar.gz" topgrade
|
2022-10-23 17:46:45 +00:00
|
|
|
cd ..
|
|
|
|
|
|
2025-08-11 10:24:18 +02:00
|
|
|
cd x86_64-pc-windows-gnu/ || exit 1
|
|
|
|
|
zip -q "../topgrade-${ans}-x86_64-windows.zip" topgrade.exe
|
2022-10-23 17:46:45 +00:00
|
|
|
cd ..
|
|
|
|
|
cd ..
|
2022-10-22 09:36:37 +00:00
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
print_checksums() {
|
|
|
|
|
|
|
|
|
|
|
2025-08-11 10:24:18 +02:00
|
|
|
cd build/ || exit 1
|
|
|
|
|
sha256sum topgrade-"${ans}"-*
|
2022-10-22 09:36:37 +00:00
|
|
|
cd ../
|
2022-10-21 18:41:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
while true; do
|
|
|
|
|
|
|
|
|
|
echo "You should always have a look on scripts you download from the internet."
|
2025-08-11 10:24:18 +02:00
|
|
|
# shellcheck disable=SC2162
|
2022-10-21 18:41:09 +00:00
|
|
|
read -p "Do you still want to proceed? (y/n) " yn
|
|
|
|
|
|
|
|
|
|
echo -n "Input version number: "
|
2025-08-11 10:24:18 +02:00
|
|
|
# shellcheck disable=SC2162
|
2022-10-21 18:41:09 +00:00
|
|
|
read ans
|
|
|
|
|
mkdir build
|
|
|
|
|
|
|
|
|
|
case $yn in
|
|
|
|
|
y ) build_function
|
|
|
|
|
package_function
|
2022-10-22 09:36:37 +00:00
|
|
|
print_checksums
|
2022-10-21 18:41:09 +00:00
|
|
|
break;;
|
|
|
|
|
n ) echo exiting...;
|
|
|
|
|
exit;;
|
|
|
|
|
* ) echo invalid response;;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
done
|