dev-env/bin/drun
2024-08-24 18:07:06 +00:00

50 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
drun() {
# Überprüfen, ob die richtige Anzahl Argumente übergeben wurden
if [ $# -lt 2 ]; then
echo "Verwendung: drun <system> <run in docker container>"
return 1
fi
# Container-Namen extrahieren
local CONTAINER_NAME="$1"
shift # Das erste Argument entfernen
# Den Rest der Argumente als Befehlszeichenfolge zusammenfügen
local COMMAND="$@"
# Container-ID mithilfe des Container-Namens finden
local CONTAINER_ID=$(docker ps -qf "name=$CONTAINER_NAME-app")
# Überprüfen, ob der Container gefunden wurde
if [ -z "$CONTAINER_ID" ]; then
echo "Container '$CONTAINER_NAME' wurde nicht gefunden."
return 1
fi
# Befehl im Container ausführen
docker exec -it "$CONTAINER_ID" $COMMAND
}
_drun_completion() {
local cur prev opts
COMPREPLY=() # Array, das die Vorschläge enthalten wird
cur="${COMP_WORDS[COMP_CWORD]}" # Das aktuelle Wort, das vervollständigt werden soll
prev="${COMP_WORDS[COMP_CWORD-1]}" # Das vorherige Wort
# Hier definierst du die Optionen oder Argumente, die `drun` akzeptiert
opts="start stop restart status"
# Wenn die Optionen abhängig vom vorherigen Wort sind, kannst du hier Bedingungen hinzufügen
# Beispiel:
# if [[ ${prev} == "start" ]]; then
# opts="service1 service2 service3"
# fi
# Die verfügbaren Optionen auf das aktuelle Eingabewort filtern
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
}
complete -F _drun_completion drun