106 lines
2.3 KiB
Bash
Executable File
106 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
# Copyright (c) 2016 Codenvy, S.A.
|
|
# All rights reserved. This program and the accompanying materials
|
|
# are made available under the terms of the Eclipse Public License v1.0
|
|
# which accompanies this distribution, and is available at
|
|
# http://www.eclipse.org/legal/epl-v10.html
|
|
|
|
skip_tests() {
|
|
for i in "$@" ; do
|
|
if [ $i = "--skip-tests" ]; then
|
|
echo "true"
|
|
exit 0
|
|
fi
|
|
done
|
|
echo "false"
|
|
}
|
|
|
|
get_tag() {
|
|
for i in "$@" ; do
|
|
if [ $i != "--skip-tests" ]; then
|
|
echo $i
|
|
exit 0
|
|
fi
|
|
done
|
|
}
|
|
|
|
init() {
|
|
BLUE='\033[1;34m'
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m'
|
|
|
|
tmp=$(get_tag "$@")
|
|
if [ ! -z "$tmp" ]; then
|
|
TAG=$tmp
|
|
else
|
|
TAG="nightly"
|
|
echo "No tag provided, using nightly as default"
|
|
fi
|
|
}
|
|
|
|
build() {
|
|
DIR=$(cd "$(dirname "$0")"; pwd)
|
|
echo "Building Docker Image ${IMAGE_NAME} from $DIR directory with tag $TAG"
|
|
cd "${DIR}" && docker build -t ${IMAGE_NAME}:${TAG} .
|
|
if [ $? -eq 0 ]; then
|
|
printf "${GREEN}Script run successfully: ${BLUE}${IMAGE_NAME}:${TAG}${NC}\n"
|
|
else
|
|
printf "${RED}Failure when building docker image ${IMAGE_NAME}:${TAG}${NC}\n"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
check_docker() {
|
|
if ! docker ps > /dev/null 2>&1; then
|
|
output=$(docker ps)
|
|
printf "${RED}Docker not installed properly: ${output}${NC}\n"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
docker_exec() {
|
|
if has_docker_for_windows_client; then
|
|
MSYS_NO_PATHCONV=1 docker.exe "$@"
|
|
else
|
|
"$(which docker)" "$@"
|
|
fi
|
|
}
|
|
|
|
has_docker_for_windows_client(){
|
|
GLOBAL_HOST_ARCH=$(docker version --format {{.Client}} | cut -d" " -f5)
|
|
|
|
if [ "${GLOBAL_HOST_ARCH}" = "windows" ]; then
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
get_full_path() {
|
|
echo "$(cd "$(dirname "${1}")"; pwd)/$(basename "$1")"
|
|
}
|
|
|
|
convert_windows_to_posix() {
|
|
echo "/"$(echo "$1" | sed 's/\\/\//g' | sed 's/://')
|
|
}
|
|
|
|
get_clean_path() {
|
|
INPUT_PATH=$1
|
|
# \some\path => /some/path
|
|
OUTPUT_PATH=$(echo ${INPUT_PATH} | tr '\\' '/')
|
|
# /somepath/ => /somepath
|
|
OUTPUT_PATH=${OUTPUT_PATH%/}
|
|
# /some//path => /some/path
|
|
OUTPUT_PATH=$(echo ${OUTPUT_PATH} | tr -s '/')
|
|
# "/some/path" => /some/path
|
|
OUTPUT_PATH=${OUTPUT_PATH//\"}
|
|
echo ${OUTPUT_PATH}
|
|
}
|
|
|
|
get_mount_path() {
|
|
FULL_PATH=$(get_full_path "${1}")
|
|
POSIX_PATH=$(convert_windows_to_posix "${FULL_PATH}")
|
|
CLEAN_PATH=$(get_clean_path "${POSIX_PATH}")
|
|
echo $CLEAN_PATH
|
|
} |