aboutsummaryrefslogtreecommitdiff
path: root/install_dependencies.sh
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-03-21 23:33:22 -0400
committerBruce Hill <bruce@bruce-hill.com>2025-03-21 23:33:22 -0400
commitf8e2916712ee6e979f6d88e1e5d467539be51097 (patch)
tree41b3949cce78afe0772efeaf8a6ae042da16f8ca /install_dependencies.sh
parente717f9f6aaaedf2fa0b8c6dac2aaae5bc5ad8c30 (diff)
Added autoinstaller for deps
Diffstat (limited to 'install_dependencies.sh')
-rwxr-xr-xinstall_dependencies.sh68
1 files changed, 68 insertions, 0 deletions
diff --git a/install_dependencies.sh b/install_dependencies.sh
new file mode 100755
index 00000000..27d04416
--- /dev/null
+++ b/install_dependencies.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+if command -v doas >/dev/null 2>&1; then
+ SUDO="doas"
+elif command -v sudo >/dev/null 2>&1; then
+ SUDO="sudo"
+else
+ echo "Neither doas nor sudo found." >&2
+ exit 1
+fi
+
+# Manually specify package manager:
+if [ -n "$1" ]; then
+ PKG_MGR="$1"
+# Autodetect package manager:
+elif command -v apt >/dev/null 2>&1; then
+ PKG_MGR="apt"
+elif command -v dnf >/dev/null 2>&1; then
+ PKG_MGR="dnf"
+elif command -v yay >/dev/null 2>&1; then
+ PKG_MGR="yay"
+elif command -v paru >/dev/null 2>&1; then
+ PKG_MGR="paru"
+elif command -v pacman >/dev/null 2>&1; then
+ PKG_MGR="pacman"
+elif command -v xbps-install >/dev/null 2>&1; then
+ PKG_MGR="xbps"
+elif command -v pkg_add >/dev/null 2>&1; then
+ PKG_MGR="pkg_add"
+elif command -v pkg >/dev/null 2>&1; then
+ PKG_MGR="freebsd-pkg"
+elif command -v brew >/dev/null 2>&1; then
+ PKG_MGR="brew"
+elif command -v port >/dev/null 2>&1; then
+ PKG_MGR="macports"
+elif command -v zypper >/dev/null 2>&1; then
+ PKG_MGR="zypper"
+elif command -v nix-env >/dev/null 2>&1; then
+ PKG_MGR="nix"
+elif command -v spack >/dev/null 2>&1; then
+ PKG_MGR="spack"
+elif command -v conda >/dev/null 2>&1; then
+ PKG_MGR="conda"
+else
+ echo "Unsupported package manager" >&2
+ exit 1
+fi
+
+# Install packages
+case "$PKG_MGR" in
+ apt) $SUDO apt install libgc-dev libunistring-dev binutils patchelf libgmp-dev ;;
+ dnf) $SUDO dnf install gc-devel libunistring-devel binutils patchelf gmp-devel ;;
+ pacman) $SUDO pacman -S gc libunistring binutils patchelf gmp ;;
+ yay|paru) $PKG_MGR -S gc libunistring binutils patchelf gmp ;;
+ xbps) $SUDO xbps-install -S gc libunistring binutils patchelf gmp ;;
+ pkg_add) $SUDO pkg_add boehm-gc libunistring binutils patchelf gmp ;;
+ freebsd-pkg) $SUDO pkg install boehm-gc libunistring binutils patchelf gmp ;;
+ brew) brew install bdw-gc libunistring binutils patchelf gmp ;;
+ macports) $SUDO port install boehm-gc libunistring binutils patchelf gmp ;;
+ zypper) $SUDO zypper install gc-devel libunistring-devel binutils patchelf gmp-devel ;;
+ nix) nix-env -iA nixpkgs.boehm-gc nixpkgs.libunistring nixpkgs.binutils nixpkgs.patchelf nixpkgs.gmp ;;
+ spack) spack install boehm-gc libunistring binutils patchelf gmp ;;
+ conda) conda install boehm-gc libunistring binutils patchelf gmp ;;
+ *)
+ echo "Unknown package manager: $PKG_MGR" >&2
+ exit 1
+ ;;
+esac