From 56410393c50b0f775ff5be93804ac5da2f3791b3 Mon Sep 17 00:00:00 2001 From: 0xbbuddha Date: Mon, 4 Aug 2025 14:21:19 +0200 Subject: [PATCH 1/3] feat: add arch-shell tool --- arch-shell | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100755 arch-shell diff --git a/arch-shell b/arch-shell new file mode 100755 index 0000000..cfb7449 --- /dev/null +++ b/arch-shell @@ -0,0 +1,73 @@ +#!/bin/bash +set -euo pipefail + +# ============================================= +# Script : arch-shell +# Description : Gestion des environnements Arch Linux pour ArchimedeOS +# Auteur : Killian Prin-abeil +# ============================================= + +ARCHSHELL_DIR="${HOME}/.arch-shells" + +usage() { + echo "Usage: $0 create | -S | enter | delete " + exit 1 +} + +if [ $# -lt 2 ]; then + usage +fi + +case "$1" in + create) + ENVNAME="$2" + mkdir -p "$ARCHSHELL_DIR" + echo "Création de l'environnement $ENVNAME..." + if sudo mkarchroot "${ARCHSHELL_DIR}/${ENVNAME}" base > /dev/null 2>&1; then + echo "Environnement $ENVNAME créé." + else + echo "Erreur lors de la création du chroot."; exit 2; + fi + ;; + -S) + ENVNAME="$2" + shift 2 + if [ ! -d "${ARCHSHELL_DIR}/${ENVNAME}" ]; then + echo "Environnement inexistant : ${ENVNAME}"; exit 3; + fi + echo "Installation de(s) paquet(s) $* dans $ENVNAME..." + if sudo arch-nspawn "${ARCHSHELL_DIR}/${ENVNAME}" pacman -S --noconfirm "$@" > /dev/null 2>&1; then + echo "Installation terminée." + else + echo "Erreur lors de l'installation des paquets."; exit 4; + fi + ;; + enter) + ENVNAME="$2" + if [ ! -d "${ARCHSHELL_DIR}/${ENVNAME}" ]; then + echo "Environnement inexistant : ${ENVNAME}"; exit 3; + fi + echo "Entrée dans l'environnement $ENVNAME." + sudo arch-nspawn "${ARCHSHELL_DIR}/${ENVNAME}" + ;; + delete) + ENVNAME="$2" + if [ ! -d "${ARCHSHELL_DIR}/${ENVNAME}" ]; then + echo "Environnement inexistant : ${ENVNAME}"; exit 3; + fi + read -p "Supprimer définitivement ${ENVNAME} ? [o/N] " REP + if [[ "$REP" =~ ^[oOyY]$ ]]; then + sudo rm -rf "${ARCHSHELL_DIR}/${ENVNAME}" + LOCKFILE="${ARCHSHELL_DIR}/${ENVNAME}.lock" + if [ -f "$LOCKFILE" ]; then + sudo rm -f "$LOCKFILE" + fi + echo "Environnement supprimé." + else + echo "Annulé." + fi + ;; + *) + usage + ;; +esac \ No newline at end of file From 8a27387951d9bfda077b420ee0678eb2e107fed1 Mon Sep 17 00:00:00 2001 From: 0xbbuddha Date: Mon, 4 Aug 2025 15:23:58 +0200 Subject: [PATCH 2/3] fix: detail --- aos-forge | 1 + 1 file changed, 1 insertion(+) diff --git a/aos-forge b/aos-forge index d8abb6d..d2414ad 100755 --- a/aos-forge +++ b/aos-forge @@ -4,6 +4,7 @@ # Script : aos-forge # Description : Gestion des conteneurs Docker pour ArchimedeOS # Auteur : Killian Prin-abeil +# Date : $(date +%Y-%m-%d) # ============================================= set -euo pipefail From 8133994549ae8748fa021ae89247810d6b7900b3 Mon Sep 17 00:00:00 2001 From: 0xbbuddha Date: Mon, 4 Aug 2025 15:24:09 +0200 Subject: [PATCH 3/3] fix: detail --- arch-shell | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch-shell b/arch-shell index cfb7449..c747c38 100755 --- a/arch-shell +++ b/arch-shell @@ -1,12 +1,14 @@ #!/bin/bash -set -euo pipefail # ============================================= # Script : arch-shell # Description : Gestion des environnements Arch Linux pour ArchimedeOS # Auteur : Killian Prin-abeil +# Date : $(date +%Y-%m-%d) # ============================================= +set -euo pipefail + ARCHSHELL_DIR="${HOME}/.arch-shells" usage() {