#!/usr/bin/env bash

set -euo pipefail

readonly BATTERY="BAT1"
readonly THRESHOLD_FILE="/sys/class/power_supply/${BATTERY}/charge_control_end_threshold"
readonly CAPACITY_FILE="/sys/class/power_supply/${BATTERY}/capacity"
readonly STATUS_FILE="/sys/class/power_supply/${BATTERY}/status"
readonly HELPER="/usr/local/sbin/batlimit-set"

if [[ ! -e "$THRESHOLD_FILE" ]]; then
    echo "Erreur : aucun seuil de charge disponible pour ${BATTERY}."
    exit 1
fi

read -rp "Niveau max de charge voulu [%] : " STOP

if [[ ! "$STOP" =~ ^[0-9]+$ ]]; then
    echo "Erreur : entre un nombre entier."
    exit 1
fi

if (( STOP < 40 || STOP > 100 )); then
    echo "Erreur : choisis une valeur entre 40 et 100."
    exit 1
fi

if ! sudo -n "$HELPER" "$STOP"; then
    echo "Erreur : impossible d’appliquer le seuil."
    exit 1
fi

CURRENT_THRESHOLD=$(<"$THRESHOLD_FILE")

echo
echo "Batterie : ${BATTERY}"
echo "Seuil appliqué : ${CURRENT_THRESHOLD}%"
echo "Charge actuelle : $(<"$CAPACITY_FILE")%"
echo "État : $(<"$STATUS_FILE")"
