From 9a5ea36901aea5b8bc95fa587359886a48f13823 Mon Sep 17 00:00:00 2001 From: BeauTroll <-> Date: Thu, 18 Dec 2025 16:05:58 +0100 Subject: [PATCH] Refactor disk-usage logic into dedicated script MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move disk-usage functionality from Makefile to a dedicated shell script for better maintainability and consistency with other scripts. Changes: - Create scripts/disk-usage.sh with all disk usage logic - Simplify Makefile disk-usage target to call the script - Add environment loading and color formatting to script - Fix duplicate output by adding head -1 to grep chain 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- Makefile | 15 +-------------- scripts/disk-usage.sh | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 14 deletions(-) create mode 100755 scripts/disk-usage.sh diff --git a/Makefile b/Makefile index ab16e71..c0402d8 100644 --- a/Makefile +++ b/Makefile @@ -56,20 +56,7 @@ info: ## Affiche les informations sur le repository @sudo bash -c 'set -a && source /etc/borgmatic/.env && set +a && borgmatic info' disk-usage: ## Affiche l'espace disque utilisé et libre sur le serveur de backup - @echo "$(BLUE)Espace disque sur le serveur de backup:$(NC)" - @echo "" - @echo "$(YELLOW)Espace utilisé par le repository Borg (toutes archives):$(NC)" - @sudo bash -c 'set -a && source /etc/borgmatic/.env && set +a && borgmatic info 2>/dev/null | grep "All archives" | grep GB' - @echo "" - @echo "$(YELLOW)Espace libre sur le serveur distant:$(NC)" - @sudo bash -c 'set -a && source /etc/borgmatic/.env && set +a && \ - USER_HOST=$$(echo $$BORG_REPO | sed "s|ssh://||" | sed "s|:.*||") && \ - PORT=$$(echo $$BORG_REPO | grep -o ":[0-9]*/" | sed "s|[:/]||g") && \ - if [ -n "$$PORT" ]; then \ - ssh -p $$PORT $$USER_HOST "df -h ~/ | tail -1"; \ - else \ - ssh $$USER_HOST "df -h ~/ | tail -1"; \ - fi' + @sudo ./scripts/disk-usage.sh restore: ## Lance le script de restauration interactive @echo "$(BLUE)Restauration interactive...$(NC)" diff --git a/scripts/disk-usage.sh b/scripts/disk-usage.sh new file mode 100755 index 0000000..4a858a9 --- /dev/null +++ b/scripts/disk-usage.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# +# Script d'affichage de l'espace disque du serveur de backup +# Usage: ./disk-usage.sh +# + +set -e + +# Couleurs +BLUE='\033[0;34m' +YELLOW='\033[1;33m' +NC='\033[0m' + +# Charger et exporter les variables d'environnement +if [ -f /etc/borgmatic/.env ]; then + set -a + source /etc/borgmatic/.env + set +a +elif [ -f .env ]; then + set -a + source .env + set +a +fi + +echo -e "${BLUE}Espace disque sur le serveur de backup:${NC}" +echo "" + +# Statistiques du repository Borg +echo -e "${YELLOW}Espace utilisé par le repository Borg (toutes archives):${NC}" +borgmatic info 2>/dev/null | grep "All archives" | grep GB | head -1 + +echo "" + +# Espace libre sur le serveur distant +echo -e "${YELLOW}Espace libre sur le serveur distant:${NC}" +USER_HOST=$(echo $BORG_REPO | sed "s|ssh://||" | sed "s|:.*||") +PORT=$(echo $BORG_REPO | grep -o ":[0-9]*/" | sed "s|[:/]||g") + +if [ -n "$PORT" ]; then + ssh -p $PORT $USER_HOST "df -h ~/ | tail -1" +else + ssh $USER_HOST "df -h ~/ | tail -1" +fi