Files
pic/scripts/check_deps.sh
T
2026-04-22 09:32:43 -04:00

59 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
# Install all host dependencies required by Personal Internet Cell.
# Uses apt-get (Debian/Ubuntu). Must be run with sudo or as root.
set -e
APT_UPDATED=0
apt_install() {
PKG="$1"
if ! dpkg -s "$PKG" >/dev/null 2>&1; then
echo " Installing $PKG..."
if [ "$APT_UPDATED" = "0" ]; then
apt-get update -qq
APT_UPDATED=1
fi
apt-get install -y -qq "$PKG"
else
echo " [ok] $PKG"
fi
}
echo "=== Checking system dependencies ==="
# Core tools
apt_install git
apt_install curl
apt_install openssl
apt_install python3
apt_install python3-cryptography
# Docker
if ! command -v docker >/dev/null 2>&1; then
echo " Installing docker..."
if [ "$APT_UPDATED" = "0" ]; then
apt-get update -qq
APT_UPDATED=1
fi
apt-get install -y -qq docker.io
fi
echo " [ok] docker"
# Docker Compose (v2 plugin preferred, v1 fallback)
if ! docker compose version >/dev/null 2>&1 && ! command -v docker-compose >/dev/null 2>&1; then
echo " Installing docker-compose..."
apt-get install -y -qq docker-compose
fi
echo " [ok] docker-compose"
# Ensure the invoking user is in the docker group (use SUDO_USER if available)
TARGET_USER="${SUDO_USER:-$(id -un)}"
if ! groups "$TARGET_USER" 2>/dev/null | grep -q '\bdocker\b'; then
echo " Adding $TARGET_USER to docker group..."
usermod -aG docker "$TARGET_USER"
echo " NOTE: Log out and back in (or run 'newgrp docker') for docker group to take effect."
fi
echo " [ok] docker group ($TARGET_USER)"
echo "=== All dependencies OK ==="