#!/usr/bin/env bash set -euo pipefail readonly BATTERY="BAT1" readonly THRESHOLD_FILE="/sys/class/power_supply/${BATTERY}/charge_control_end_threshold" if (( $# != 1 )); then echo "Usage : batlimit-set SEUIL" >&2 exit 2 fi readonly THRESHOLD="$1" if [[ ! "$THRESHOLD" =~ ^[0-9]+$ ]]; then echo "Erreur : le seuil doit être un entier." >&2 exit 2 fi if (( THRESHOLD < 40 || THRESHOLD > 100 )); then echo "Erreur : le seuil doit être compris entre 40 et 100." >&2 exit 2 fi if [[ ! -e "$THRESHOLD_FILE" ]]; then echo "Erreur : seuil de charge introuvable pour ${BATTERY}." >&2 exit 1 fi printf '%s\n' "$THRESHOLD" > "$THRESHOLD_FILE" read -r CURRENT_THRESHOLD < "$THRESHOLD_FILE" if [[ "$CURRENT_THRESHOLD" != "$THRESHOLD" ]]; then echo "Erreur : seuil demandé ${THRESHOLD} %, valeur appliquée ${CURRENT_THRESHOLD} %." >&2 exit 1 fi