Initial commit

This commit is contained in:
2025-10-22 20:40:25 +03:00
commit 63d038ee63
57 changed files with 104378 additions and 0 deletions

103
sys/install.sh Executable file
View File

@@ -0,0 +1,103 @@
#!/bin/sh
# shellcheck disable=SC2034
# This script installs dev tools (build tools & toolchain)
# https://github.com/xpack-dev-tools/windows-build-tools-xpack/releases
# https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases
build_tools_version="4.4.1-2" # For Windows only
toolchain_version="12.3.1-1.2" # For all OS
###############################################################################################
install_path=~/.xpack-dev-tools # For all OS
api_build_tools_url=https://api.github.com/repos/xpack-dev-tools/windows-build-tools-xpack/releases
api_toolchain_url=https://api.github.com/repos/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases
Extract() {
archive="$1"
if echo "$archive" | grep -E -- ".zip$" >/dev/null 2>&1; then
unzip -o "$archive"
fi
if echo "$archive" | grep -E -- ".tar.gz$" >/dev/null 2>&1; then
tar xvf "$archive"
fi
}
# Usage: Install [api_url] [version] [file_ending]
Install() {
api_url="$1"
version="$2"
file_ending="$3"
install_folder="xpack-"$(echo "$api_url" | cut -d '/' -f6 | sed "s/xpack/$version/")
# echo "Install folder: $install_folder"
if [ -d "$install_path/$install_folder" ]; then
echo "Use: $install_folder"
return
fi
url=$(curl --ssl-no-revoke -s -L "$api_url" | grep -- "browser_download_url" | grep -- "$version" | grep -- "$file_ending\"" | cut -d '"' -f4)
# echo "Download URL: $url"
archive=$(basename "$url")
# echo "Archive: $archive"
mkdir -p "$install_path"
cd "$install_path" || exit 1
curl --ssl-no-revoke -L -O "$url"
Extract "$archive"
rm "$archive"
}
# Windows
if uname | grep -- "MINGW64" >/dev/null 2>&1; then
Install "$api_build_tools_url" "$build_tools_version" "win32-x64.zip"
Install "$api_toolchain_url" "$toolchain_version" "win32-x64.zip"
exit
fi
# Linux
if uname | grep -- "Linux" >/dev/null 2>&1; then
if uname -a | grep -- "x86_64" >/dev/null 2>&1; then
Install "$api_toolchain_url" "$toolchain_version" "linux-x64.tar.gz"
elif uname -a | grep -- "aarch64" >/dev/null 2>&1; then
Install "$api_toolchain_url" "$toolchain_version" "linux-arm64.tar.gz"
elif uname -a | grep -- "arm" >/dev/null 2>&1; then
Install "$api_toolchain_url" "$toolchain_version" "linux-arm.tar.gz"
else
echo "Unknown Linux architecture"; exit 1
fi
if ( ! xxd --version > /dev/null 2>&1 ) || ( ! srec_cat --version > /dev/null 2>&1 ); then
sudo apt update
fi
if ! xxd --version > /dev/null 2>&1; then
sudo apt install -y xxd
else
echo "Use: xxd"
fi
if ! srec_cat --version > /dev/null 2>&1; then
sudo apt install -y srecord
else
echo "Use: srecord"
fi
exit
fi
# MAC
if uname | grep -- "Darwin" >/dev/null 2>&1; then
if uname -a | grep -- "arm64" >/dev/null 2>&1; then
Install "$api_toolchain_url" "$toolchain_version" "darwin-arm64.tar.gz"
elif uname -a | grep -- "x86_64" >/dev/null 2>&1; then
Install "$api_toolchain_url" "$toolchain_version" "darwin-x64.tar.gz"
else
echo "Unknown Darwin architecture"; exit 1
fi
brew install make srecord coreutils
exit
fi