embark-docker/run.sh

115 lines
2.9 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
2018-07-25 03:27:03 +00:00
run_embark () {
local oldopts=""
case $- in
*e*) oldopts="set -e" ;;
*) oldopts="set +e" ;;
esac
if [[ $(shopt -po history) = "set -o history" ]]; then
oldopts="$oldopts; set -o history"
fi
set +e
set +o history
local txtbld=$(tput bold)
local txtrst=$(tput sgr0)
local bldcyn=${txtbld}$(tput setaf 6)
local bldred=${txtbld}$(tput setaf 1)
local bldylw=${txtbld}$(tput setaf 3)
local ERROR=${bldred}ERROR${txtrst}
local INFO=${bldcyn}INFO${txtrst}
local WARNING=${bldylw}WARNING${txtrst}
check_bash_version () {
if [[ $BASH_VERSINFO -lt 4 ]]; then
echo "$ERROR: this script requires Bash version >= 4.0"
return 1
fi
}
check_bash_version
if [[ $? = 1 ]]; then
unset check_bash_version
eval "$oldopts"
if [[ "$0" != "$BASH_SOURCE" ]]; then
return 1
else
exit 1
fi
fi
check_docker () {
if ! type docker &> /dev/null; then
echo "$ERROR: the command \`docker\` must be in a path on \$PATH or aliased"
return 127
fi
}
check_docker
if [[ $? = 127 ]]; then
unset check_bash_version
unset check_docker
eval "$oldopts"
if [[ "$0" != "$BASH_SOURCE" ]]; then
return 127
else
exit 127
fi
fi
local dummy="-e __embark_docker_runsh"
2018-07-24 22:39:42 +00:00
local EMBARK_DOCKER_EXTRA_RUN_OPTS=${EMBARK_DOCKER_EXTRA_RUN_OPTS:-$dummy}
local -a extra_run_opts=( $EMBARK_DOCKER_EXTRA_RUN_OPTS )
2018-07-24 20:25:55 +00:00
local EMBARK_DOCKER_MOUNT_SOURCE=${EMBARK_DOCKER_MOUNT_DIR:-$PWD}
2018-07-23 03:51:42 +00:00
local EMBARK_DOCKER_MOUNT_TARGET=${EMBARK_DOCKER_MOUNT_DIR:-/dapp}
local EMBARK_DOCKER_IMAGE=${EMBARK_DOCKER_IMAGE:-statusim/embark}
local EMBARK_DOCKER_TAG=${EMBARK_DOCKER_TAG:-latest}
2018-07-25 20:16:58 +00:00
local -a cmd=( "$@" )
2018-07-25 20:16:44 +00:00
case $1 in
-V|--version|-h|--help|new|demo|build|run|blockchain|simulator|test|\
reset|graph|upload|version) cmd=( "embark" "$cmd" ) ;;
2018-07-25 20:16:44 +00:00
esac
2018-07-25 03:27:03 +00:00
docker run \
-it \
-p 5001:5001 \
-p 8000:8000 \
-p 8080:8080 \
-p 8500:8500 \
-p 8545:8545 \
-p 8546:8546 \
-p 8555:8555 \
2018-07-16 01:15:41 +00:00
-p 8556:8556 \
-p 30301:30301/udp \
-p 30303:30303 \
2018-07-23 03:51:42 +00:00
-v ${EMBARK_DOCKER_MOUNT_SOURCE}:${EMBARK_DOCKER_MOUNT_TARGET} \
2018-07-24 22:18:25 +00:00
-e TERM \
"${extra_run_opts[@]}" \
2018-07-23 03:51:42 +00:00
${EMBARK_DOCKER_IMAGE}:${EMBARK_DOCKER_TAG} \
2018-07-25 03:27:03 +00:00
"${cmd[@]}"
local docker_exit_status=$?
unset check_bash_version
unset check_docker
eval "$oldopts"
if [[ $docker_exit_status != 0 ]]; then
if [[ "$0" != "$BASH_SOURCE" ]]; then
return $docker_exit_status
else
exit $docker_exit_status
fi
fi
}
if [[ "$0" = "$BASH_SOURCE" ]]; then
2018-07-25 03:27:03 +00:00
run_embark "$@"
fi