39 lines
932 B
Bash
39 lines
932 B
Bash
#!/bin/bash
|
|
ENV_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/.." &> /dev/null && pwd )
|
|
source $ENV_DIR/bin/denv_msg
|
|
|
|
drun() {
|
|
if [ $# -lt 2 ]; then
|
|
denv_error_msg "Verwendung: drun [system] <run in docker container>"
|
|
return 1
|
|
fi
|
|
|
|
local CONTAINER_NAME="$1"
|
|
shift # Das erste Argument entfernen
|
|
local COMMAND="$@"
|
|
local CONTAINER_ID=$(docker ps -qf "name=$CONTAINER_NAME-app")
|
|
|
|
if [ -z "$CONTAINER_ID" ]; then
|
|
denv_error_msg "Container '$CONTAINER_NAME' wurde nicht gefunden."
|
|
return 1
|
|
fi
|
|
|
|
if [[ -t 0 && -t 1 ]]; then
|
|
docker exec -it "$CONTAINER_ID" $COMMAND
|
|
else
|
|
docker exec "$CONTAINER_ID" $COMMAND
|
|
fi
|
|
}
|
|
|
|
_drun_completion() {
|
|
local cur prev opts
|
|
COMPREPLY=()
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
|
opts="start stop restart status"
|
|
|
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
return 0
|
|
}
|
|
|
|
complete -F _drun_completion drun |