| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #!/bin/bash
- #
- # Apple Battery Saver - Installation
- # Aufruf: sudo ./install.sh
- #
- set -euo pipefail
- LABEL="de.smallmountains.batterysaver"
- SRC="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
- BIN_DST=/usr/local/bin/battery-saver.sh
- CONF_DST=/usr/local/etc/battery-saver.conf
- PLIST_DST="/Library/LaunchDaemons/${LABEL}.plist"
- if [ "$(id -u)" -ne 0 ]; then
- echo "Dieses Skript muss als root laufen: sudo ./install.sh" >&2
- exit 1
- fi
- echo "Apple Battery Saver - Installation"
- echo "=================================="
- # --- Programm ---------------------------------------------------------------
- install -d -m 755 /usr/local/bin
- install -m 755 -o root -g wheel "${SRC}/battery-saver.sh" "$BIN_DST"
- echo " Programm -> ${BIN_DST}"
- # --- Konfiguration ----------------------------------------------------------
- install -d -m 755 /usr/local/etc
- if [ -f "$CONF_DST" ]; then
- echo " Konfiguration -> ${CONF_DST} (vorhanden, bleibt unverändert)"
- else
- install -m 644 -o root -g wheel "${SRC}/battery-saver.conf" "$CONF_DST"
- echo " Konfiguration -> ${CONF_DST}"
- fi
- # --- Logdatei ---------------------------------------------------------------
- touch /var/log/battery-saver.log
- chmod 644 /var/log/battery-saver.log
- chown root:wheel /var/log/battery-saver.log
- # --- LaunchDaemon -----------------------------------------------------------
- # Falls bereits geladen, erst sauber entladen.
- if launchctl print "system/${LABEL}" >/dev/null 2>&1; then
- echo " Vorhandenen Dienst entladen ..."
- launchctl bootout "system/${LABEL}" 2>/dev/null || true
- fi
- install -m 644 -o root -g wheel "${SRC}/${LABEL}.plist" "$PLIST_DST"
- echo " LaunchDaemon -> ${PLIST_DST}"
- if ! launchctl bootstrap system "$PLIST_DST" 2>/dev/null; then
- # Fallback für ältere macOS-Versionen
- launchctl load -w "$PLIST_DST"
- fi
- # --- Prüfung ----------------------------------------------------------------
- echo
- if launchctl print "system/${LABEL}" >/dev/null 2>&1; then
- echo "Dienst läuft."
- else
- echo "WARNUNG: Dienst konnte nicht gestartet werden." >&2
- exit 1
- fi
- echo
- echo "Fertig. Nützliche Befehle:"
- echo " battery-saver.sh --status Messwerte und Bewertung"
- echo " sudo battery-saver.sh --test Logik simulieren"
- echo " tail -f /var/log/battery-saver.log Protokoll mitlesen"
- echo " sudo ./uninstall.sh Deinstallieren"
- echo
- "$BIN_DST" --status || true
|