- Internationalization (i18n) support added (English default, German translation)

- Installer updated to handle translation files (.mo)
 - All scripts updated to use gettext
 - Replaced Traefik-Crowdsec-Stack updater with own authelia-watcher-manager which works
   together with the docker project lxtools/authelia-watcher
This commit is contained in:
2026-01-31 00:06:09 +01:00
parent 340cb1b785
commit e4b4718dc7
7 changed files with 322 additions and 159 deletions

View File

@@ -1,21 +1,22 @@
Changelog for clidmanager
My standard System: Debian 12 (Server)
My standard System: Debian 13 (Server)
create on 20-3-2025 by Désiré Werner Menrath
## [Unreleased]
- Add comments
- Add a simple singe docker [container] restart | stop | start
with clidmanager
- write in English and add translation in German
- Add a simple single docker rmi [container] a stop containers
### Added
### Added
20-03-2025
- first 70 lines written for tests
### Added
### Added
21-03-2025
- functions declared: Create new folder, edit yml files,
@@ -27,7 +28,7 @@ create on 20-3-2025 by Désiré Werner Menrath
- File no_pwd_clidmanager added in /etc/sudoers.d
### Added
### Added
22-03-2025
- functions declared: Start/stop all containers,
@@ -40,8 +41,17 @@ create on 20-3-2025 by Désiré Werner Menrath
- Numbering from now on in yellow for better readability
### Added
### Added
23-03-2025
- Docker directory for logs, edit yml files and start container
is now displayed numbered, for easy handling.
### Added
30-01-2026
- Internationalization (i18n) support added (English default, German translation)
- Installer updated to handle translation files (.mo)
- All scripts updated to use gettext
- Replaced Traefik-Crowdsec-Stack updater with own authelia-watcher-manager which works
together with the docker project lxtools/authelia-watcher

View File

@@ -1,3 +1,85 @@
# CLI_Docker_Manager
Easy handling of Docker containers
**CLI_Docker_Manager** is a bash-based command-line tool designed to simplify the management of Docker containers on Linux systems. It provides a user-friendly menu interface to handle common Docker Compose tasks without needing to remember complex commands.
## Features
- **Folder Management**: Easily create new container directories in `/opt/containers/` with optional subfolders (e.g., `data`, `config`).
- **Compose Management**: Edit or create `docker-compose.yml` files directly using `nano`.
- **Container Control**: Start, restart, and stop specific containers or all containers at once.
- **Logs**: View logs for specific containers with ease.
- **Overview**: List running containers and their status.
- **Navigation**: Quickly jump to the container directory using the `dw` alias.
- **Authelia Watcher Manager**: A specialized module to manage `lxtools/authelia-watcher`, including:
- Viewing active iptables bans.
- Manually unbanning IPs.
- Managing the whitelist (DynDNS/Static).
- Editing configuration.
- **Localization**: Supports English (default) and German.
## Prerequisites
- Linux OS (Tested on Debian 12 | 13, Linux Mint 21.* | 22.*)
- Docker & Docker Compose installed.
- `sudo` privileges.
- `gettext` (for translations).
## Installation
1. Clone the repository or download the scripts.
2. Make the installer executable:
```bash
chmod +x install.sh
```
3. Run the installer:
```bash
./install.sh
```
The installer will:
- Create aliases (`dm`, `clidmanager`, `dw`) in your `~/.bashrc`.
- Configure `sudoers` to allow running `clidmanager` without a password.
- Install translation files (`.mo`).
- Add the user to the `docker` group if not already added.
## Usage
Start the tool by typing:
```bash
dm
```
or
```bash
clidmanager
```
### Menu Options
1. **Create new container folder**: Sets up a directory structure in `/opt/containers/`.
2. **Edit/Create yml file**: Opens the `docker-compose.yml` for the selected container.
3. **Start/Restart container**: Runs `docker compose up -d` for the selected container.
4. **View logs**: Shows logs for the selected container.
5. **Stop all containers**: Stops all running Docker containers.
6. **Start all containers**: Starts all stopped Docker containers.
7. **Authelia Watcher Manager**: Specialized tools for the Authelia Watcher service.
8. **Show running containers**: Displays a table of currently running containers.
### Quick Navigation
Use the `dw` alias to quickly change your current directory to `/opt/containers/`:
```bash
dw
```
## Localization
The tool automatically detects your system language.
- **English**: Default.
- **German**: Available if system locale is set to German.
## Disclaimer
Use without warranty! This tool is provided as-is to help manage Docker environments.
## Author
Désiré Werner Menrath

282
clidmanager Executable file → Normal file
View File

@@ -2,25 +2,28 @@
# clidmanager simple management a docker container
# Author: Désiré Werner Menrath
# Email: polunga40@unity-mail.de
# Translate German to English with LibreTranslate
# Translatefiles edit with Poedit
# Email: polunga40@unity-mail.de
# Use without warranty!
# 1 = 1. Year, 09 = Month of the Year, 2924 = Day and Year of the Year
NORMAL='\033[0m'
GREEN='\033[1;32m'
RED='\033[31;1;42m'
BLUE='\033[30;1;34m'
ZYAN='\033[30;1;36m'
YELLOW='\033[1;33m'
LBLUE='\033[1;34m'
YELLOW='\033[1;33m'
# 1 = 1. Year, 09 = Month of the Year, 2924 = Day and Year of the Year
version=$(echo -e $GREEN"v. 1.03.2325"$LBLUE)
cmname=$(echo -e $YELLOW"containermanager"$LBLUE)
info=$(echo -e $GREEN"Im Terminal dw eingeben um direkt")
info2=$(echo -e $GREEN"in das Docker Verzeichnis zu kommen."$LBLUE)
ZYAN='\033[30;1;36m'
export TEXTDOMAIN=clidmanager
export TEXTDOMAINDIR="/usr/share/locale"
# Translations for header variables
version_num="v. 2.01.3026"
version=$(printf "${GREEN}%s${LBLUE}" "$version_num")
cmname=$(printf "${YELLOW}%s${LBLUE}" "containermanager")
info=$(echo -e "${GREEN}$(gettext "Enter 'dw' in terminal to go directly")")
info2=$(echo -e "${GREEN}$(gettext "to the docker directory.")${NORMAL}")
one=$(echo -e $YELLOW"1"$LBLUE)
two=$(echo -e $YELLOW"2"$LBLUE)
three=$(echo -e $YELLOW"3"$LBLUE)
@@ -29,102 +32,85 @@ five=$(echo -e $YELLOW"5"$LBLUE)
six=$(echo -e $YELLOW"6"$LBLUE)
seven=$(echo -e $YELLOW"7"$LBLUE)
eight=$(echo -e $YELLOW"8"$LBLUE)
Encoding=UTF-8
# i18n - Internationalization - Internationalisierung
export TEXTDOMAIN=clidmanager
export TEXTDOMAINDIR="/usr/share/locale"
list_dir_with_numbers() {
unset dcname
# Here Is is used to store all folders of a directory in an array
array=($(ls))
# This loop outputs the directory numbered
typeset -i i=0 max=${#array[*]}
while (( i < max ))
do
while (( i < max )); do
echo -e $LBLUE[$YELLOW$i$LBLUE] $LBLUE"${array[$i]}"$NORMAL
i=i+1
done
# Loop that only allows numbers
while read -p "Ordner Nummer eingeben: " entrynumber
do
if [[ "$entrynumber" =~ ^[0-9]+$ && "$entrynumber" -lt "$i" ]]
then
dcname=${array[entrynumber]}
break
fi
done
while read -p "$(gettext "Enter folder number: ")" entrynumber; do
if [[ "$entrynumber" =~ ^[0-9]+$ && "$entrynumber" -lt "$i" ]]; then
dcname=${array[entrynumber]}
break
fi
done
}
newdir() {
clear
echo
echo -e $BLUE"Wird hier ein Name eingegeben,\nerstellt dies einen Ordner in /opt/containers/."$NORMAL
echo -e $BLUE"$(gettext "If a name is entered here,\nit creates a folder in /opt/containers/.")"$NORMAL
echo
echo -e $GREEN"Achtung hier bitte nur einen Ordner angeben!"$NORMAL
read -p "Containername eingeben: " dcname
echo -e $GREEN"$(gettext "Attention, please specify only one folder here!")"$NORMAL
read -p "$(gettext "Enter container name: ")" dcname
sudo mkdir -p /opt/containers/$dcname
while [ -z $dcname ]
do
echo -e $GREEN"Ups da wurde kein Ordnername eingegeben..."$NORMAL
echo -e $GREEN"$(gettext "Oops, no folder name was entered...")"$NORMAL
echo
read -p "Containername eingeben: " dcname
read -p "$(gettext "Enter container name: ")" dcname
sudo mkdir -p /opt/containers/$dcname
done
if [ -d /opt/containers/$dcname ]
then
clear
echo
echo -e $GREEN"Ordner"$BLUE ${dcname} $GREEN"wurde erfolreich erstellt."$NORMAL
echo -e $GREEN"$(gettext "Folder")"$BLUE ${dcname} $GREEN"$(gettext "was successfully created.")"$NORMAL
echo
echo "Sollen in dem erstellten Ordner weitere Ordner erstellt werden?"
echo "Für weitere Ordner y und Enter drücken. Mit Enter geht es zurück zum Programm."
echo "$(gettext "Should additional folders be created in the created folder?")"
echo "$(gettext "Press y and Enter for more folders. Press Enter to return to the program.")"
read -p "" response
if [ "$response" == "y" ]
then
clear
echo -e $GREEN"Beispiel für 2 weitere Ordner in dem erstellen Ordner:"
echo -e $GREEN"$(gettext "Example for 2 additional folders in the created folder:")"
echo
echo -e $BLUE"data config"$NORMAL
echo
echo -e $GREEN"Hier können auch mehr als 2 Ordner angegeben werden,"$NORMAL
read -p "Ordnernamen eingeben: " subfolders
echo -e $GREEN"$(gettext "More than 2 folders can be specified here,")"$NORMAL
read -p "$(gettext "Enter folder names: ")" subfolders
for item in ${subfolders[*]}
do
sudo mkdir -p /opt/containers/$dcname/$item
done
while [ -z $item ]
do
echo -e $GREEN"Ups es wurden keine weiteren Ordner angegeben..."
echo -e $GREEN"Bitte nochmal"$NORMAL
read -p "Ordnernamen eingeben: " subfolders
echo -e $GREEN"$(gettext "Oops, no further folders were specified...")"
echo -e $GREEN"$(gettext "Please try again")"$NORMAL
read -p "$(gettext "Enter folder names: ")" subfolders
for item in ${subfolders[*]}
do
sudo mkdir -p /opt/containers/$dcname/$item
done
done
clear
echo -e $GREEN"Ordner ...$BLUE"
echo -e $GREEN"$(gettext "Folder ...")$BLUE"
echo
ls -x /opt/containers/$dcname/
echo
echo -e $GREEN"wurden erstellt."
echo -e $GREEN"$(gettext "were created.")"
echo
read -p "Weiter mit Enter."
read -p "$(gettext "Continue with Enter.")"
sudo clidmanager
else
sudo clidmanager
fi
else
echo -e $RED"Es trat ein fehler auf...\nBitte im Pfad nachsehen ob der Ordner existiert."$NORMAL
echo -e $RED"$(gettext "An error occurred...\nPlease check the path to see if the folder exists.")"$NORMAL
fi
}
@@ -144,8 +130,8 @@ log() {
unset dcname
clear
echo -e ""$NORMAL
echo -e $BLUE" -----Docker Compose Logs-----"$NORMAL
echo -e $GREEN"Unten sehen sie eine Liste der Container"$NORMAL
echo -e $BLUE" -----$(gettext "Docker Compose Logs")-----"$NORMAL
echo -e $GREEN"$(gettext "Below you see a list of containers")"$NORMAL
echo -e ""$ZYAN
cd /opt/containers/ && list_dir_with_numbers
cd $dcname && docker compose logs
@@ -158,11 +144,11 @@ dcstart() {
unset dcname
clear
echo -e ""$NORMAL
echo -e $BLUE"Hier wird der angegebene Container bei änderung der yml Datei, neu erstellt."
echo -e "Und bei einem neuen Container wird dieser runtergeladen und gestartet."$NORMAL
echo -e $BLUE"$(gettext "Here the specified container is recreated when the yml file changes.")"
echo -e "$(gettext "And for a new container, it is downloaded and started.")"$NORMAL
echo
echo -e $BLUE" -----Docker Compose start-----"
echo -e $GREEN"Unten sehen sie eine Liste der Container"$NORMAL
echo -e $BLUE" -----$(gettext "Docker Compose start")-----"
echo -e $GREEN"$(gettext "Below you see a list of containers")"$NORMAL
echo -e ""$ZYAN
cd /opt/containers/ && list_dir_with_numbers
cd $dcname && docker compose up -d
@@ -174,8 +160,8 @@ edit_yml() {
unset dcname
clear
echo -e ""$NORMAL
echo -e $BLUE" -----yml File edit-----"
echo -e $GREEN"Unten sehen sie eine Liste der Container"$NORMAL
echo -e $BLUE" -----$(gettext "yml File edit")-----"
echo -e $GREEN"$(gettext "Below you see a list of containers")"$NORMAL
echo -e ""$ZYAN
cd /opt/containers/ && list_dir_with_numbers
cd $dcname && nano docker-compose.yml
@@ -192,51 +178,137 @@ all_start() {
docker start $(docker ps -a -q)
}
stack_update() {
watcher_management() {
# Find container name dynamically via label
REAL_CONTAINER_NAME=$(docker ps --filter "label=service=authelia-watcher" --format "{{.Names}}")
cd /opt/containers/traefik-crowdsec-stack/ && wait && \
docker compose restart crowdsec && wait && \
docker compose down && wait && \
docker compose pull && wait && \
docker compose up -d
if [ -z "$REAL_CONTAINER_NAME" ]; then
clear
echo -e "${RED}$(gettext "Error: Watcher container not found!")${NORMAL}"
echo -e "$(gettext "Make sure the label 'service=authelia-watcher' is set.")"
read -p "$(gettext "Press Enter to exit...")"
clear
return
fi
while true; do
clear
echo -e "${LBLUE}--- Authelia Watcher: Management & Config ---${NORMAL}"
echo -e "$(gettext "Found Container:") ${GREEN}$REAL_CONTAINER_NAME${NORMAL}"
echo "======================================================"
echo -e "[$one] $(gettext "View active bans (iptables)")"
echo -e "[$two] $(gettext "Manually unban an IP")"
echo -e "[$three] $(gettext "Whitelist Management (DynDNS/Static)")"
echo -e "[$four] $(gettext "Edit JSON Configuration")"
echo -e "[$five] $(gettext "View Watcher Logs")"
echo -e "[$six] $(gettext "Back to Main Menu")"
echo "======================================================"
read -n 1 -s -r -p "$(gettext "Select an option: ")" wopt
WHITELIST_PATH="/opt/containers/authelia-watcher/config/whitelist.txt"
BLACKLIST_PATH="/opt/containers/authelia-watcher/config/blacklist.txt"
case $wopt in
1)
clear
(echo "$(gettext "ACTIVE BANS (iptables):")"; echo "---------------------------"; \
iptables -L INPUT -n --line-numbers | grep DROP) | less
;;
2)
echo -e "\n"
read -p "$(gettext "Enter IP address to unban: ")" IP_TO_UNBAN
if [ -n "$IP_TO_UNBAN" ]; then
while iptables -L INPUT -n | grep -q "$IP_TO_UNBAN"; do
iptables -D INPUT -s "$IP_TO_UNBAN" -j DROP 2>/dev/null
done
[ -f "$BLACKLIST_PATH" ] && sed -i "/^$IP_TO_UNBAN$/d" "$BLACKLIST_PATH"
printf "\n${GREEN}$(gettext "IP %s has been successfully removed from firewall and blacklist.")${NORMAL}\n" "$IP_TO_UNBAN"
read -p "$(gettext "Press Enter...")"
fi
;;
3)
clear
echo -e "${LBLUE}--- $(gettext "Whitelist Management") ---${NORMAL}"
echo "1) $(gettext "Add IP to Whitelist")"
echo "2) $(gettext "Remove IP from Whitelist")"
echo "3) $(gettext "Show Whitelist")"
read -n 1 -s -r -p "$(gettext "Option: ")" wl_opt
echo -e "\n"
case $wl_opt in
1)
read -p "$(gettext "Enter IP to whitelist: ")" NEW_WL
if [ -n "$NEW_WL" ]; then
if ! grep -Fxq "$NEW_WL" "$WHITELIST_PATH" 2>/dev/null; then
echo "$NEW_WL" >> "$WHITELIST_PATH"
# Sofort entbannen, falls vorhanden
while iptables -L INPUT -n | grep -q "$NEW_WL"; do
iptables -D INPUT -s "$NEW_WL" -j DROP 2>/dev/null
done
sed -i "/^$NEW_WL$/d" "$BLACKLIST_PATH" 2>/dev/null
printf "${GREEN}$(gettext "✅ IP %s added to whitelist and unbanned.")${NORMAL}\n" "$NEW_WL"
else
echo "$(gettext "IP already in whitelist.")"
fi
fi
;;
2)
read -p "$(gettext "Enter IP to remove: ")" RM_WL
[ -n "$RM_WL" ] && sed -i "/^$RM_WL$/d" "$WHITELIST_PATH"
printf "${RED}$(gettext "❌ IP %s removed from whitelist.")${NORMAL}\n" "$RM_WL"
;;
3)
echo "$(gettext "Current Whitelist:")"
[ -s "$WHITELIST_PATH" ] && cat "$WHITELIST_PATH" || echo "$(gettext "Whitelist is empty.")"
;;
esac
read -p "$(gettext "Press Enter...")"
;;
4)
nano /opt/containers/authelia-watcher/config/watcher-config.json
docker restart "$REAL_CONTAINER_NAME"
;;
5)
docker logs -f --tail 50 "$REAL_CONTAINER_NAME"
;;
6)
sudo clidmanager # Back to main menu
;;
esac
done
}
clear
echo -e $LBLUE""
read -n 1 -s -r -p "$version | $cmname |
main_menu() {
while true; do
clear
echo -e "$version | $cmname |"
echo "======================================="
echo -e "[$one] $(gettext "Create new container folder")"
echo -e "[$two] $(gettext "Edit/Create yml file")"
echo -e "[$three] $(gettext "Start/Restart container")"
echo -e "[$four] $(gettext "View logs")"
echo -e "[$five] $(gettext "Stop all containers")"
echo -e "[$six] $(gettext "Start all containers")"
echo -e "[$seven] $(gettext "Authelia Watcher Manager")"
echo -e "[$eight] $(gettext "Show running containers")"
echo "======================================="
echo "$info"
echo "$info2"
read -n 1 -s -r -p "$(gettext "Choose 1-8: ")" entry
case $entry in
1) newdir; exit ;;
2) edit_yml; exit ;;
3) dcstart; exit ;;
4) log; exit ;;
5) all_stop; exit ;;
6) all_start; exit ;;
7) watcher_management; exit ;;
8) list_containers; exit ;;
*) clear; exit ;;
esac
done
}
[$one] Neuen Container Ordner erstellen
[$two] yml Datei bearbeiten/erstellen
[$three] Container mit up -d starten/neustarten
[$four] Log Datei einsehen
[$five] Alle Container stoppen
[$six] Alle Container starten
[$seven] Docker Spezial \"Crownsec-Treafik-Stack\" updaten
[$eight] Laufende Container anzeigen
$info
$info2
======================================================
Bitte eine Zahl von 1-8 wählen.
Abbruch mit jeder anderen Taste ..." entry
clear
case $entry in
[1]* ) clear; newdir; exit;;
[2]* ) clear; edit_yml; exit;;
[3]* ) clear; dcstart; exit;;
[4]* ) clear; log; exit;;
[5]* ) clear; all_stop; exit;;
[6]* ) clear; all_start; exit;;
[7]* ) clear; stack_update; exit;;
[8]* ) clear; list_containers; exit;;
esac
################ENDE#######################
main_menu

View File

@@ -1,9 +1,11 @@
#!/usr/bin/bash
export TEXTDOMAIN=clidmanager
export TEXTDOMAINDIR="/usr/share/locale"
clear
cd /opt/containers/
echo
ls
echo
echo "Oben sehen sie eine liste der vorhandenen Ordner"
echo "$(gettext "Above you see a list of existing folders")"
echo

View File

@@ -1,25 +1,14 @@
#!/bin/bash
########################################################
########################################################
# installer for simple management a docker container ##
# Author: Désiré Werner Menrath ##
# Email: polunga40@unity-mail.de ##
# Translate German to English with LibreTranslate ##
# Translatefiles edit with Poedit ##
# Use without warranty! ##
########################################################
########################################################
Encoding=UTF-8
# installer for simple management a docker container
# Author: Désiré Werner Menrath
# Email: polunga40@unity-mail.de
# Use without warranty!
# i18n - Internationalization - Internationalisierung
export TEXTDOMAIN=clidmanager
export TEXTDOMAINDIR="/usr/share/locale"
############################################################################################################
############################################################################################################
export TEXTDOMAIN=install
export TEXTDOMAINDIR="./locale"
install() {
@@ -27,7 +16,7 @@ install() {
if [ $? -ne 0 ]
then
echo "alias dm='sudo clidmanager'" >> ~/.bashrc
echo "Alias dm angelegt... 15%"
echo "$(gettext "Alias dm created... 15%")"
check=""
sleep 0.8
else
@@ -37,7 +26,7 @@ install() {
if [ $? -ne 0 ]
then
echo "alias clidmanager='sudo clidmanager'" >> ~/.bashrc
echo "Alias clidmanager angelegt... 30%"
echo "$(gettext "Alias clidmanager created... 30%")"
check1=""
sleep 0.8
else
@@ -47,7 +36,7 @@ install() {
if [ $? -ne 0 ]
then
echo "alias dw='source docker_work'" >> ~/.bashrc
echo "Alias clidmanager angelegt... 45%"
echo "$(gettext "Alias dw created... 45%")"
check2=""
sleep 0.8
else
@@ -64,80 +53,88 @@ install() {
exit 0
else
sudo cp -f clidmanager docker_work /usr/local/bin/ && sudo mv no_pwd_clidmanager /etc/sudoers.d/
# Install translation file
sudo mkdir -p /usr/share/locale/de/LC_MESSAGES/
sudo cp -f ./locale/de/clidmanager.mo /usr/share/locale/de/LC_MESSAGES/clidmanager.mo
if [ "$check" = "ok" ] && [ "$check1" = "ok" ] && [ "$check2" = "ok" ]
then
Bar=30
Bar2=60
echo "no_pwd_clidmanager installiert... $Bar%"
echo "$(gettext "no_pwd_clidmanager installed...") $Bar%"
sleep 0.8
echo "docker_work installiert... $Bar2%"
echo "$(gettext "docker_work installed...") $Bar2%"
sleep 0.8
echo "clidmanager installiert... 90%"
echo "$(gettext "clidmanager installed... 90%")"
sleep 0.8
echo
echo "Update installiert. 100%"
echo "$(gettext "Update installed. 100%")"
echo
else
Bar=60
Bar2=75
echo "no_pwd_clidmanager installiert... $Bar%"
echo "$(gettext "no_pwd_clidmanager installed...") $Bar%"
sleep 0.8
echo "docker_work installiert... $Bar2%"
echo "$(gettext "docker_work installed...") $Bar2%"
sleep 0.8
echo "clidmanager installiert... 90%"
echo "$(gettext "clidmanager installed... 90%")"
sleep 0.8
sudo usermod -aG docker $USER >/dev/null 2>&1
sleep 0.8
echo "Benutzer der Gruppe Docker hinzugefügt... 100%"
echo "$(gettext "User added to Docker group... 100%")"
echo
echo "Bei der nächten anmeldung können sie clidmanager"
echo "$(gettext "At the next login you can call clidmanager")"
echo
echo "entweder über clidmanager oder über dm aufrufen."
echo "$(gettext "either via clidmanager or via dm.")"
echo
fi
read -p "Enter zum beenden drücken..."
read -p "$(gettext "Press Enter to exit...")"
fi
}
remove() {
sudo rm -f /usr/local/bin/clidmanager /usr/local/bin/docker_work && sudo rm /etc/sudoers.d/no_pwd_clidmanager
sudo rm -f /usr/share/locale/de/LC_MESSAGES/clidmanager.mo
if [ $? -ne 0 ]
then
exit 0
else
echo "docker_work entfernt.... 15%"
echo "$(gettext "docker_work removed.... 15%")"
sleep 0.5
echo "no_pwd_clidmanager.... 30%"
echo "$(gettext "no_pwd_clidmanager removed.... 30%")"
sleep 0.5
echo "clidmanager entfernt.... 45%"
echo "$(gettext "clidmanager removed.... 45%")"
sleep 0.5
sed -i -e /"alias dm='sudo clidmanager'"/d ~/.bashrc && \
echo "Alias dm entfernt.... 60%"
echo "$(gettext "Alias dm removed.... 60%")"
sleep 0.5
sed -i -e /"alias clidmanager='sudo clidmanager'"/d ~/.bashrc && \
echo "Alias clidmanager entfernt.... 75%"
echo "$(gettext "Alias clidmanager removed.... 75%")"
sleep 0.5
sed -i -e /"alias dw='source docker_work'"/d ~/.bashrc
echo "Alias dw entfernt.... 90%"
echo "$(gettext "Alias dw removed.... 90%")"
sleep 0.5
echo "clidmanager vollständig entfernt.... 100%"
echo "$(gettext "clidmanager completely removed.... 100%")"
sleep 0.5
echo
read -p "Enter zum beenden drücken..."
read -p "$(gettext "Press Enter to exit...")"
fi
}
which clidmanager >/dev/null
if [ $? -eq 0 ]
then
echo "Möchten sie updaten/reinstallieren oder clidmanager deinstallieren?"
echo "$(gettext "Do you want to update/reinstall or uninstall clidmanager?")"
echo
echo "Update/reinstall: y drücken, deinstallieren r drücken"
echo "$(gettext "Update/reinstall: press y, uninstall: press r")"
echo
read -n 1 -s -r -p "Abbruch mit jeder anderen Taste..." result
read -n 1 -s -r -p "$(gettext "Cancel with any other key...")" result
case $result in
[y]* ) clear; install; exit;;
[Y]* ) clear; install; exit;;
@@ -151,9 +148,9 @@ else
docker compose version >/dev/null 2>&1
if [ $? -ne 0 ]
then
echo "Docker Compose wird für die verwendung von clidmanager benötigt."
echo "Bitte das Paket docker compose installieren."
read -p "Zum beenden Enter drücken"
echo "$(gettext "Docker Compose is required to use clidmanager.")"
echo "$(gettext "Please install the docker compose package.")"
read -p "$(gettext "Press Enter to exit")"
exit 0
else
install

Binary file not shown.

BIN
locale/de/clidmanager.mo Normal file

Binary file not shown.