build files for making podman containers
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

48 lines
1.2 KiB

#!/bin/bash
################################################################################
set -eEuo pipefail
badarg() {
echo -n "$(basename $0): "
echo "$1"
echo "Try '$(basename $0) -h' for more information."
exit 2
}
help="Usage: $(basename $0) [-h] container [command]
Runs a bash shell on the given container.
If the second argument is omitted, an interactive login shell is launched. If the
second argument is present, the string is interpreted as a command and executed
directly. To ensure that any shell syntax is evaluated in the container shell
instead of the host shell, make sure to wrap your string in single quotes.
Options:
-h Display this help and exit"
# Handle options
while getopts ':h' arg; do
case $arg in
h) echo "$help"; exit 0;;
:) badarg "Argument missing for option '-$OPTARG'";;
?) badarg "Invalid option '-$OPTARG'";;
esac
done
# Handle non-option arguments
if [[ $# -lt 1 ]]; then
badarg "Missing container name"
else
container="$1"
fi
if [[ $# -gt 2 ]]; then
badarg "Too many arguments"
fi
# Main
if [[ $# -eq 1 ]]; then
podman exec -it "$container" bash -l
else
podman exec -it "$container" bash -c "${@:2}"
fi