mirror of
https://github.com/jpetazzo/container.training.git
synced 2026-03-04 18:30:38 +00:00
It is now possible to set the user login (instead of having it hardcoded to "docker"). Also, various actions have been broken out in separate functions to facilitate future maintenance.
57 lines
1.2 KiB
Bash
Executable File
57 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Get the script's real directory.
|
|
# This should work whether we're being called directly or via a symlink.
|
|
if [ -L "$0" ]; then
|
|
export SCRIPT_DIR=$(dirname $(readlink "$0"))
|
|
else
|
|
export SCRIPT_DIR=$(dirname "$0")
|
|
fi
|
|
|
|
# Load all scriptlets.
|
|
cd "$SCRIPT_DIR"
|
|
for lib in lib/*.sh; do
|
|
. $lib
|
|
done
|
|
|
|
DEPENDENCIES="
|
|
curl
|
|
fping
|
|
jq
|
|
man
|
|
pssh
|
|
ssh
|
|
wkhtmltopdf
|
|
yq
|
|
"
|
|
|
|
# Check for missing dependencies, and issue a warning if necessary.
|
|
missing=0
|
|
for dependency in $DEPENDENCIES; do
|
|
if ! command -v $dependency >/dev/null; then
|
|
warning "Dependency $dependency could not be found."
|
|
missing=1
|
|
fi
|
|
done
|
|
if [ $missing = 1 ]; then
|
|
warning "At least one dependency is missing. Install it or try the image wrapper."
|
|
fi
|
|
|
|
# Check if SSH_AUTH_SOCK is set.
|
|
# (If it's not, deployment will almost certainly fail.)
|
|
if [ -z "${SSH_AUTH_SOCK}" ]; then
|
|
warning "Environment variable SSH_AUTH_SOCK is not set."
|
|
warning "Hint: run 'eval \$(ssh-agent) ; ssh-add' and try again?"
|
|
fi
|
|
|
|
# Now check which command was invoked and execute it.
|
|
if [ "$1" ]; then
|
|
cmd="$1"
|
|
shift
|
|
else
|
|
cmd=help
|
|
fi
|
|
fun=_cmd_$cmd
|
|
type -t $fun | grep -q function || die "Invalid command: $cmd"
|
|
$fun "$@"
|