Saves time and prevents errors with trying to install rustup twice or potentially overriding the user's default toolchain.
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
# SPDX-License-Identifier: GPL-3.0-only
 | 
						|
 | 
						|
set -eE
 | 
						|
 | 
						|
function msg {
 | 
						|
  echo -e "\x1B[1m$*\x1B[0m" >&2
 | 
						|
}
 | 
						|
 | 
						|
trap 'msg "\x1B[31mFailed to install dependencies!"' ERR
 | 
						|
 | 
						|
source /etc/os-release
 | 
						|
 | 
						|
msg "Installing system build dependencies"
 | 
						|
if [[ "${ID}" =~ "debian" ]] || [[ "${ID_LIKE}" =~ "debian" ]]; then
 | 
						|
    sudo apt-get install \
 | 
						|
        --no-install-recommends \
 | 
						|
        --yes \
 | 
						|
        avr-libc \
 | 
						|
        avrdude \
 | 
						|
        curl \
 | 
						|
        gcc-avr \
 | 
						|
        make \
 | 
						|
        sdcc
 | 
						|
elif [[ "${ID}" =~ "fedora" ]] || [[ "${ID_LIKE}" =~ "fedora" ]]; then
 | 
						|
    sudo dnf install \
 | 
						|
        --assumeyes \
 | 
						|
        avr-gcc \
 | 
						|
        avr-libc \
 | 
						|
        avrdude \
 | 
						|
        curl \
 | 
						|
        make \
 | 
						|
        sdcc
 | 
						|
else
 | 
						|
    msg "Please add support for your distribution to:"
 | 
						|
    msg "scripts/deps.sh"
 | 
						|
    exit 1
 | 
						|
fi
 | 
						|
 | 
						|
msg "Initializing submodules"
 | 
						|
git submodule update --init --recursive
 | 
						|
 | 
						|
if ! which rustup &> /dev/null; then
 | 
						|
    msg "Installing Rust"
 | 
						|
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
 | 
						|
      | sh -s -- -y --default-toolchain none
 | 
						|
 | 
						|
    msg "Loading Rust environment"
 | 
						|
    source "${HOME}/.cargo/env"
 | 
						|
fi
 | 
						|
 | 
						|
msg "Installing pinned Rust toolchain"
 | 
						|
rustup toolchain install "$(cat rust-toolchain)"
 | 
						|
 | 
						|
msg "Installing source for pinned Rust toolchain"
 | 
						|
rustup component add --toolchain "$(cat rust-toolchain)" rust-src
 | 
						|
 | 
						|
msg "\x1B[32mSuccessfully installed dependencies"
 |