dev-env/bin/drun
2024-12-21 03:52:33 +01:00

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