diff --git a/triton-docker b/triton-docker index 7832694..2fe46cf 100644 --- a/triton-docker +++ b/triton-docker @@ -23,62 +23,71 @@ function currentProfile () { echo "Executing in '$(triton profile get | awk 'NR == 1 {print $2}')' (${profile_source}) at $(date +'%r')" } -# Check if the Docker binary (named triton-docker-helper) is installed and executable -# ...install it if not +# Check if the Docker binary (named triton-docker-helper) +# and Docker Compose (named triton-compose-helper) are installed and executable function checkDockerInstalled () { - if [ ! -f /usr/local/bin/triton-docker-helper ] || [ ! -x /usr/local/bin/triton-docker-helper ] + if + [ ! -f /usr/local/bin/triton-docker-helper ] || + [ ! -x /usr/local/bin/triton-docker-helper ] || + [ '1.12.6,' != $(/usr/local/bin/triton-docker-helper -v | awk '{print $3}') ] || + [ ! -f /usr/local/bin/triton-compose-helper ] || + [ ! -x /usr/local/bin/triton-compose-helper ] || + [ '1.9.0,' != $(/usr/local/bin/triton-compose-helper -v | awk '{print $3}') ] then - echo "Triton-docker needs to install an application to continue." - echo "This installation will only happen once." - - # Check if triton is installed and executable - command -v curl >/dev/null 2>&1 || { echo >&2 "curl is required to complete this installation. Please install before continuing."; exit 1; } - - rm -Rf /tmp/triton-docker /usr/local/bin/triton-docker-helper - mkdir -p /tmp/triton-docker - curl https://get.docker.com/builds/$(uname -a | awk '{ print $1 }')/x86_64/docker-1.12.6.tgz | tar zxvf - -C /tmp/triton-docker - mv /tmp/triton-docker/docker/docker /usr/local/bin/triton-docker-helper - rm -Rf /tmp/triton-docker - chmod +x /usr/local/bin/triton-docker-helper - - echo "The triton-docker-helper is now installed." + echo 'Additional or updated components are required.' + echo 'Please run `sudo triton-docker-install` to continue.' echo + exit 1 fi } -# Check if Docker Compose (named triton-compose-helper) is installed and executable -# ...install it if not -function checkComposeInstalled () { - if [ ! -f /usr/local/bin/triton-compose-helper ] || [ ! -x /usr/local/bin/triton-compose-helper ] - then - echo "Triton-compose needs to install an application to continue." - echo "This installation will only happen once." +# Install architecture-specific Docker and Docker Compose binaries +function install () { + echo "Triton needs to install additional components for Docker and Docker Compose interactions." + echo "This installation will only happen once." - # Check if curl is installed and executable - checkCurlInstalled + # Check if curl is installed and executable + checkCurlInstalled - curl -Lo /usr/local/bin/triton-compose-helper https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -a | awk '{ print $1 }')-x86_64 - chmod +x /usr/local/bin/triton-compose-helper + # Install the specific version of Docker for Triton + rm -Rf /tmp/triton-docker /usr/local/bin/triton-docker-helper + mkdir -p /tmp/triton-docker + curl https://get.docker.com/builds/$(uname -a | awk '{ print $1 }')/x86_64/docker-1.12.6.tgz | tar zxvf - -C /tmp/triton-docker + mv /tmp/triton-docker/docker/docker /usr/local/bin/triton-docker-helper + rm -Rf /tmp/triton-docker + chmod +x /usr/local/bin/triton-docker-helper - echo "The triton-compose-helper is now installed." - echo - fi + echo "The triton-docker-helper is now installed." + echo + + # Install the specific version of Docker Compose for Triton + curl -Lo /usr/local/bin/triton-compose-helper https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -a | awk '{ print $1 }')-x86_64 + chmod +x /usr/local/bin/triton-compose-helper + + echo "The triton-compose-helper is now installed." + echo +} + +# Install architecture-specific Docker and Docker Compose binaries +function checkAll () { + checkTritonInstalled && + checkDockerInstalled && + currentProfile } case "`basename $0`" in triton-docker) - checkTritonInstalled && - checkDockerInstalled && - currentProfile && + checkAll && eval "$(triton env)" && exec /usr/local/bin/triton-docker-helper $@ ;; triton-compose) - checkTritonInstalled && - checkComposeInstalled && - currentProfile && + checkAll && eval "$(triton env)" && export COMPOSE_HTTP_TIMEOUT=750 && exec /usr/local/bin/triton-compose-helper $@ ;; + triton-docker-install) + install + ;; esac