#!/usr/bin/env bash # ───────────────────────────────────────────────────────────────────────────── # Suplovani.cz — Bootstrap installer # # Použití: # curl -fsSL cli.suplovani.cz | sudo bash # # Stáhne suplovani-cli, nainstaluje do /opt/suplovani-cli a spustí instalaci. # ───────────────────────────────────────────────────────────────────────────── set -euo pipefail # Pevný umask — firstboot (systemd oneshot na novém OS image) může běžet s umask # 077, což by /opt/suplovani-cli vytvořilo jako 0700 (neprůchozí pro kiosk # „suplovani") a `chmod +x` by přidal jen u+x. Níže navíc nastavujeme práva # explicitně, ať instalace nezávisí na umasku volajícího procesu vůbec. umask 022 RED='\033[0;31m' GREEN='\033[0;32m' CYAN='\033[0;36m' BOLD='\033[1m' NC='\033[0m' CLI_URL="https://cli.suplovani.cz/suplovani-cli.tar.gz" CLI_DIR="/opt/suplovani-cli" echo -e "${BOLD}${CYAN}── Suplovani.cz — Bootstrap ──${NC}\n" # Root check if [[ $EUID -ne 0 ]]; then echo -e "${RED}✗${NC} Spusťte jako root: curl -fsSL cli.suplovani.cz | sudo bash" >&2 exit 1 fi # Závislosti pro stažení if ! command -v curl &>/dev/null; then echo -e "${GREEN}ℹ${NC} Instaluji curl..." apt-get update -qq && apt-get install -y -qq curl 2>/dev/null fi # Stáhnout CLI echo -e "${GREEN}ℹ${NC} Stahuji suplovani-cli..." mkdir -p "$CLI_DIR" if curl -fsSL "$CLI_URL" | tar xz -C "$CLI_DIR" --strip-components=1; then # Explicitní práva nezávislá na umasku: adresář musí být průchozí (o+x) a # soubory čitelné/spustitelné i pro neroot uživatele, jinak symlink v PATH # nejde spustit (binárka existuje, ale dir se nedá projít). chmod 755 "$CLI_DIR" chmod -R a+rX "$CLI_DIR" chmod 0755 "$CLI_DIR/supl" ln -sf "$CLI_DIR/supl" /usr/local/bin/supl echo -e "${GREEN}✓${NC} CLI nainstalováno do $CLI_DIR" else echo -e "${RED}✗${NC} Nepodařilo se stáhnout CLI z $CLI_URL" >&2 exit 1 fi echo "" # Předat env proměnné z příkazové řádky export SUPL_DEVICE_ID="${SUPL_DEVICE_ID:-}" export SUPL_SCHOOL_ID="${SUPL_SCHOOL_ID:-}" # Spustit instalaci exec "$CLI_DIR/supl" install