Browse Source

Add version check, separate the install action

pull/1/head
Casey Bisson 2 years ago
parent
commit
3d866f9adc
1 changed files with 46 additions and 37 deletions
  1. +46
    -37
      triton-docker

+ 46
- 37
triton-docker View File

@@ -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

Loading…
Cancel
Save