From 8a5c83488f7f2da1b5c1e9cd1f349bf5c7ae6203 Mon Sep 17 00:00:00 2001 From: Starbeamrainbowlabs Date: Sat, 6 Aug 2022 21:26:30 +0100 Subject: [PATCH] wesher-wireguard: only request install of raspberrypi-kernel-headers if we're both raspbian AND the right CPU arch --- src/lib/normalise-arch.sh | 39 +++++++++++++++++++++++++ src/run.sh | 1 + src/steps-config/50-wesher-wireguard.sh | 8 ++++- 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/lib/normalise-arch.sh diff --git a/src/lib/normalise-arch.sh b/src/lib/normalise-arch.sh new file mode 100644 index 0000000..3724ef3 --- /dev/null +++ b/src/lib/normalise-arch.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + + +__na_log_msg() { + echo "[normalise-arch] $*" >&2; +} + +normalise-arch() { + + arch="$1"; + if [[ -z "${arch}" ]]; then + read -r arch; + fi + new_arch="${arch}"; + + if [[ "${arch}" == "help" ]]; then + __na_log_msg "normalise-arch"; + __na_log_msg " Normalises architecture names to match the official Debian architecture names used by apt."; + __na_log_msg "Usage:"; + __na_log_msg " normalise-arch {architecture}"; + exit 0; + fi + + case "${arch}" in + "x64" ) new_arch="amd64" ;; # Node.js tarball downloads + "armv7" ) new_arch="armhf" ;; # Source: Traefik + "armv7l" ) new_arch="armhf" ;; + "armhfv6" ) new_arch="armhf" ;; # Source: Consul + "armelv5" ) new_arch="armv5" ;; # Source: Consul + "arm" ) new_arch="armhf" ;; + "aarch64" ) new_arch="arm64" ;; + "armv8" ) new_arch="arm64" ;; + esac + + __na_log_msg "${arch} → ${new_arch}"; + + echo "${new_arch}"; + +} \ No newline at end of file diff --git a/src/run.sh b/src/run.sh index b6ba07d..84bb481 100755 --- a/src/run.sh +++ b/src/run.sh @@ -27,6 +27,7 @@ if [ ! -f "${lantern_path}/lantern.sh" ]; then git submodule update --init "${la #shellcheck disable=SC1090 source "${lantern_path}/lantern.sh"; +source "lib/normalise-arch.sh"; #shellcheck disable=SC1090 source "/etc/os-release"; diff --git a/src/steps-config/50-wesher-wireguard.sh b/src/steps-config/50-wesher-wireguard.sh index 6931ef2..a033bd7 100755 --- a/src/steps-config/50-wesher-wireguard.sh +++ b/src/steps-config/50-wesher-wireguard.sh @@ -6,8 +6,14 @@ wesher_secret="$(ask_password "wesher configuration" "Enter the wesher shared se #shellcheck disable=SC2034 wesher_join_ip="$(ask_text "wesher configuration" "Enter an IP of a host in the cluster to join:")"; -queue_apt_install "raspberrypi-kernel-headers" "wireguard" "wesher" "wesher-systemd"; +queue_apt_install "wireguard" "wesher" "wesher-systemd"; +cpu_arch="$(arch | normalise-arch)"; +if [[ "${ID}" == "raspbian" ]]; then + if [[ "${cpu_arch}" == "armhf" ]] || [[ "${cpu_arch}" == "arm64" ]]; then + queue_apt_install "raspberrypi-kernel-headers"; + fi +fi queue_postinstall_step "10-wesher.sh";