diff --git a/README.md b/README.md index 5e7af70..408b1cd 100644 --- a/README.md +++ b/README.md @@ -13,15 +13,8 @@ laptops. ## Dependencies -The complete set of dependencies can be installed using the `deps.sh` script -from the [Open Firmware](https://github.com/system76/firmware-open) repo. - -Dependencies specific to EC development can be installed with: +Install dependencies using the provided script: ``` -sudo apt install \ - avr-libc \ - avrdude \ - gcc-avr \ - sdcc +./scripts/deps.sh ``` diff --git a/scripts/deps.sh b/scripts/deps.sh new file mode 100755 index 0000000..ecca65f --- /dev/null +++ b/scripts/deps.sh @@ -0,0 +1,56 @@ +#!/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 + +msg "Installing Rust" +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \ + | sh -s -- -y --default-toolchain nightly + +msg "Loading Rust environment" +source "${HOME}/.cargo/env" + +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"