diff --git a/agents/che-core-api-agent/src/main/resources/agents/org.eclipse.che.ws-agent.json b/agents/che-core-api-agent/src/main/resources/agents/org.eclipse.che.ws-agent.json index 54a8a87b93..3162c1610a 100644 --- a/agents/che-core-api-agent/src/main/resources/agents/org.eclipse.che.ws-agent.json +++ b/agents/che-core-api-agent/src/main/resources/agents/org.eclipse.che.ws-agent.json @@ -15,5 +15,5 @@ } } }, -"script" : "#\n# Copyright (c) 2012-2017 Codenvy, S.A.\n# All rights reserved. This program and the accompanying materials\n# are made available under the terms of the Eclipse Public License v1.0\n# which accompanies this distribution, and is available at\n# http://www.eclipse.org/legal/epl-v10.html\n#\n# Contributors:\n# Codenvy, S.A. - initial API and implementation\n#\n\nunset PACKAGES\nunset SUDO\ncommand -v tar >/dev/null 2>&1 || { PACKAGES=${PACKAGES}\" tar\"; }\ncommand -v curl >/dev/null 2>&1 || { PACKAGES=${PACKAGES}\" curl\"; }\ntest \"$(id -u)\" = 0 || SUDO=\"sudo\"\n\nLOCAL_AGENT_BINARIES_URI=\"/mnt/che/ws-agent.tar.gz\"\nDOWNLOAD_AGENT_BINARIES_URI='${WORKSPACE_MASTER_URI}/agent-binaries/ws-agent.tar.gz'\n\nCHE_DIR=$HOME/che\n\nif [ -f /etc/centos-release ]; then\n FILE=\"/etc/centos-release\"\n LINUX_TYPE=$(cat $FILE | awk '{print $1}')\n elif [ -f /etc/redhat-release ]; then\n FILE=\"/etc/redhat-release\"\n LINUX_TYPE=$(cat $FILE | cut -c 1-8)\n else\n FILE=\"/etc/os-release\"\n LINUX_TYPE=$(cat $FILE | grep ^ID= | tr '[:upper:]' '[:lower:]')\n LINUX_VERSION=$(cat $FILE | grep ^VERSION_ID=)\nfi\nMACHINE_TYPE=$(uname -m)\n\nmkdir -p ${CHE_DIR}\n${SUDO} mkdir -p /projects\n${SUDO} sh -c \"chown -R $(id -u -n) /projects\"\n\n\nINSTALL_JDK=false\ncommand -v ${JAVA_HOME}/bin/java >/dev/null 2>&1 || {\n INSTALL_JDK=true;\n} && {\n java_version=$(${JAVA_HOME}/bin/java -version 2>&1 | sed 's/.* version \"\\(.*\\)\\.\\(.*\\)\\..*\"/\\1\\2/; 1q')\n if [ ! -z \"${java_version##*[!0-9]*}\" ] && [ \"${java_version}\" -lt \"18\" ]; then\n INSTALL_JDK=true;\n fi\n}\n\nif [ ${INSTALL_JDK} = true ]; then\n export JAVA_HOME=${CHE_DIR}/jdk1.8\nfi\n\n\n########################\n### Install packages ###\n########################\n\n# Red Hat Enterprise Linux 7\n############################\nif echo ${LINUX_TYPE} | grep -qi \"rhel\"; then\n\n if [ ${INSTALL_JDK} = true ]; then\n PACKAGES=${PACKAGES}\" java-1.8.0-openjdk-devel.x86_64\"\n fi\n\n test \"${PACKAGES}\" = \"\" || {\n ${SUDO} yum install ${PACKAGES};\n }\n\n if [ ${INSTALL_JDK} = true ]; then\n ln -s /usr/lib/jvm/java-1.8.0-openjdk $JAVA_HOME\n fi\n\n# Ubuntu 14.04 16.04 / Linux Mint 17\n####################################\nelif echo ${LINUX_TYPE} | grep -qi \"ubuntu\"; then\n\n if [ ${INSTALL_JDK} = true ]; then\n PACKAGES=${PACKAGES}\" openjdk-8-jdk-headless\"\n ${SUDO} apt-get install -y software-properties-common;\n ${SUDO} add-apt-repository ppa:openjdk-r/ppa;\n fi\n\n test \"${PACKAGES}\" = \"\" || {\n ${SUDO} apt-get update;\n ${SUDO} apt-get -y install ${PACKAGES};\n }\n\n if [ ${INSTALL_JDK} = true ]; then\n ln -s /usr/lib/jvm/java-1.8.0-openjdk-amd64 $JAVA_HOME\n fi\n\n# Debian 8\n##########\nelif echo ${LINUX_TYPE} | grep -qi \"debian\"; then\n\n if [ ${INSTALL_JDK} = true ]; then\n PACKAGES=${PACKAGES}\" openjdk-8-jdk-headless\";\n echo \"deb http://httpredir.debian.org/debian jessie-backports main\" | ${SUDO} tee --append /etc/apt/sources.list\n fi\n\n test \"${PACKAGES}\" = \"\" || {\n ${SUDO} apt-get update;\n ${SUDO} apt-get -y install ${PACKAGES};\n }\n\n if [ ${INSTALL_JDK} = true ]; then\n ln -s /usr/lib/jvm/java-1.8.0-openjdk-amd64 $JAVA_HOME\n fi\n\n\n# Fedora 23\n###########\nelif echo ${LINUX_TYPE} | grep -qi \"fedora\"; then\n\n command -v ps >/dev/null 2>&1 || { PACKAGES=${PACKAGES}\" procps-ng\"; }\n if [ ${INSTALL_JDK} = true ]; then\n PACKAGES=${PACKAGES}\" java-1.8.0-openjdk-devel.x86_64\";\n fi\n\n test \"${PACKAGES}\" = \"\" || {\n ${SUDO} dnf -y install ${PACKAGES};\n }\n\n if [ ${INSTALL_JDK} = true ]; then\n ln -s /usr/lib/jvm/java-1.8.0-openjdk $JAVA_HOME\n fi\n\n# CentOS 7.1 & Oracle Linux 7.1\n###############################\nelif echo ${LINUX_TYPE} | grep -qi \"centos\"; then\n\n if [ ${INSTALL_JDK} = true ]; then\n PACKAGES=${PACKAGES}\" java-1.8.0-openjdk-devel\";\n fi\n\n test \"${PACKAGES}\" = \"\" || {\n ${SUDO} yum -y install ${PACKAGES};\n }\n\n if [ ${INSTALL_JDK} = true ]; then\n ln -s /usr/lib/jvm/java-1.8.0-openjdk $JAVA_HOME\n fi\n\n# openSUSE 13.2\n###############\nelif echo ${LINUX_TYPE} | grep -qi \"opensuse\"; then\n\n if [ ${INSTALL_JDK} = true ]; then\n PACKAGES=${PACKAGES}\" java-1_8_0-openjdk-devel\";\n fi\n\n test \"${PACKAGES}\" = \"\" || {\n ${SUDO} zypper install -y ${PACKAGES};\n }\n\n if [ ${INSTALL_JDK} = true ]; then\n ln -s /usr/lib/jvm/java-1.8.0-openjdk $JAVA_HOME\n fi\n\n\n# Alpine 3.3\n############$$\nelif echo ${LINUX_TYPE} | grep -qi \"alpine\"; then\n\n if [ ${INSTALL_JDK} = true ]; then\n PACKAGES=${PACKAGES}\" openjdk8\";\n fi\n\n test \"${PACKAGES}\" = \"\" || {\n ${SUDO} apk update\n ${SUDO} apk add ${PACKAGES};\n }\n\n # Link OpenJDK to JAVA_HOME\n if [ ${INSTALL_JDK} = true ]; then\n ln -s /usr/lib/jvm/java-1.8-openjdk $JAVA_HOME\n fi\n\n# Centos 6.6, 6.7, 6.8\n############\nelif echo ${LINUX_TYPE} | grep -qi \"CentOS\"; then\n\n if [ ${INSTALL_JDK} = true ]; then\n PACKAGES=${PACKAGES}\" java-1.8.0-openjdk-devel\";\n fi\n\n test \"${PACKAGES}\" = \"\" || {\n ${SUDO} yum -y install ${PACKAGES};\n }\n\n if [ ${INSTALL_JDK} = true ]; then\n ln -s /usr/lib/jvm/java-1.8.0-openjdk $JAVA_HOME\n fi\n\n# Red Hat Enterprise Linux 6 \n############################\nelif echo ${LINUX_TYPE} | grep -qi \"Red Hat\"; then\n if [ ${INSTALL_JDK} = true ]; then\n PACKAGES=${PACKAGES}\" java-1.8.0-openjdk-devel.x86_64\";\n fi\n\n test \"${PACKAGES}\" = \"\" || {\n ${SUDO} yum install ${PACKAGES};\n }\n\n if [ ${INSTALL_JDK} = true ]; then\n ln -s /usr/lib/jvm/java-1.8.0-openjdk $JAVA_HOME\n fi\n\nelse\n >&2 echo \"Unrecognized Linux Type\"\n >&2 cat $FILE\n exit 1\nfi\n\n########################\n### Install ws-agent ###\n########################\n\nrm -rf ${CHE_DIR}/ws-agent\nmkdir -p ${CHE_DIR}/ws-agent\n\n\n# Compute URI of workspace master\nWORKSPACE_MASTER_URI=$(echo $CHE_API | cut -d / -f 1-3)\n\n## Evaluate variables now that prefix is defined\neval \"DOWNLOAD_AGENT_BINARIES_URI=${DOWNLOAD_AGENT_BINARIES_URI}\"\n\n\nif [ -f \"${LOCAL_AGENT_BINARIES_URI}\" ]\nthen\n AGENT_BINARIES_URI=\"file://${LOCAL_AGENT_BINARIES_URI}\"\nelse\n echo \"Workspace Agent will be downloaded from Workspace Master\"\n AGENT_BINARIES_URI=${DOWNLOAD_AGENT_BINARIES_URI}\nfi\n\ncurl -s ${AGENT_BINARIES_URI} | tar xzf - -C ${CHE_DIR}/ws-agent\n\n###############################################\n### ws-agent run command will be added here ###\n### ~/che/ws-agent/bin/catalina.sh run ###\n###############################################" +"script" : "#\n# Copyright (c) 2012-2017 Codenvy, S.A.\n# All rights reserved. This program and the accompanying materials\n# are made available under the terms of the Eclipse Public License v1.0\n# which accompanies this distribution, and is available at\n# http://www.eclipse.org/legal/epl-v10.html\n#\n# Contributors:\n# Codenvy, S.A. - initial API and implementation\n#\n\nunset PACKAGES\nunset SUDO\ncommand -v tar >/dev/null 2>&1 || { PACKAGES=${PACKAGES}\" tar\"; }\ncommand -v curl >/dev/null 2>&1 || { PACKAGES=${PACKAGES}\" curl\"; }\ntest \"$(id -u)\" = 0 || SUDO=\"sudo\"\n\nLOCAL_AGENT_BINARIES_URI=\"/mnt/che/ws-agent.tar.gz\"\nDOWNLOAD_AGENT_BINARIES_URI='${WORKSPACE_MASTER_URI}/agent-binaries/ws-agent.tar.gz'\n\nCHE_DIR=$HOME/che\n\nif [ -f /etc/centos-release ]; then\n FILE=\"/etc/centos-release\"\n LINUX_TYPE=$(cat $FILE | awk '{print $1}')\n elif [ -f /etc/redhat-release ]; then\n FILE=\"/etc/redhat-release\"\n LINUX_TYPE=$(cat $FILE | cut -c 1-8)\n else\n FILE=\"/etc/os-release\"\n LINUX_TYPE=$(cat $FILE | grep ^ID= | tr '[:upper:]' '[:lower:]')\n LINUX_VERSION=$(cat $FILE | grep ^VERSION_ID=)\nfi\nMACHINE_TYPE=$(uname -m)\n\nmkdir -p ${CHE_DIR}\n${SUDO} mkdir -p /projects\n${SUDO} sh -c \"chown -R $(id -u -n) /projects\"\n\n\nINSTALL_JDK=false\ncommand -v ${JAVA_HOME}/bin/java >/dev/null 2>&1 || {\n INSTALL_JDK=true;\n} && {\n java_version=$(${JAVA_HOME}/bin/java -version 2>&1 | sed 's/.* version \"\\(.*\\)\\.\\(.*\\)\\..*\"/\\1\\2/; 1q')\n if [ ! -z \"${java_version##*[!0-9]*}\" ] && [ \"${java_version}\" -lt \"18\" ]; then\n INSTALL_JDK=true;\n fi\n}\n\nif [ ${INSTALL_JDK} = true ]; then\n export JAVA_HOME=${CHE_DIR}/jdk1.8\nfi\n\n\n########################\n### Install packages ###\n########################\n\n# Red Hat Enterprise Linux 7\n############################\nif echo ${LINUX_TYPE} | grep -qi \"rhel\"; then\n\n if [ ${INSTALL_JDK} = true ]; then\n PACKAGES=${PACKAGES}\" java-1.8.0-openjdk-devel.x86_64\"\n fi\n\n test \"${PACKAGES}\" = \"\" || {\n ${SUDO} yum install ${PACKAGES};\n }\n\n if [ ${INSTALL_JDK} = true ]; then\n ln -s /usr/lib/jvm/java-1.8.0-openjdk $JAVA_HOME\n fi\n\n# Ubuntu 14.04 16.04 / Linux Mint 17\n####################################\nelif echo ${LINUX_TYPE} | grep -qi \"ubuntu\"; then\n\n if [ ${INSTALL_JDK} = true ]; then\n PACKAGES=${PACKAGES}\" openjdk-8-jdk-headless\"\n ${SUDO} apt-get install -y software-properties-common;\n ${SUDO} add-apt-repository ppa:openjdk-r/ppa;\n fi\n\n test \"${PACKAGES}\" = \"\" || {\n ${SUDO} apt-get update;\n ${SUDO} apt-get -y install ${PACKAGES};\n }\n\n if [ ${INSTALL_JDK} = true ]; then\n ln -s /usr/lib/jvm/java-1.8.0-openjdk-amd64 $JAVA_HOME\n fi\n\n# Debian 8\n##########\nelif echo ${LINUX_TYPE} | grep -qi \"debian\"; then\n\n if [ ${INSTALL_JDK} = true ]; then\n PACKAGES=${PACKAGES}\" openjdk-8-jdk-headless\";\n echo \"deb http://httpredir.debian.org/debian jessie-backports main\" | ${SUDO} tee --append /etc/apt/sources.list\n fi\n\n test \"${PACKAGES}\" = \"\" || {\n ${SUDO} apt-get update;\n ${SUDO} apt-get -y install ${PACKAGES};\n }\n\n if [ ${INSTALL_JDK} = true ]; then\n ln -s /usr/lib/jvm/java-1.8.0-openjdk-amd64 $JAVA_HOME\n fi\n\n\n# Fedora 23\n###########\nelif echo ${LINUX_TYPE} | grep -qi \"fedora\"; then\n\n command -v ps >/dev/null 2>&1 || { PACKAGES=${PACKAGES}\" procps-ng\"; }\n if [ ${INSTALL_JDK} = true ]; then\n PACKAGES=${PACKAGES}\" java-1.8.0-openjdk-devel.x86_64\";\n fi\n\n test \"${PACKAGES}\" = \"\" || {\n ${SUDO} dnf -y install ${PACKAGES};\n }\n\n if [ ${INSTALL_JDK} = true ]; then\n ln -s /usr/lib/jvm/java-1.8.0-openjdk $JAVA_HOME\n fi\n\n# CentOS 7.1 & Oracle Linux 7.1\n###############################\nelif echo ${LINUX_TYPE} | grep -qi \"centos\"; then\n\n if [ ${INSTALL_JDK} = true ]; then\n PACKAGES=${PACKAGES}\" java-1.8.0-openjdk-devel\";\n fi\n\n test \"${PACKAGES}\" = \"\" || {\n ${SUDO} yum -y install ${PACKAGES};\n }\n\n if [ ${INSTALL_JDK} = true ]; then\n ln -s /usr/lib/jvm/java-1.8.0-openjdk $JAVA_HOME\n fi\n\n# openSUSE 13.2\n###############\nelif echo ${LINUX_TYPE} | grep -qi \"opensuse\"; then\n\n if [ ${INSTALL_JDK} = true ]; then\n PACKAGES=${PACKAGES}\" java-1_8_0-openjdk-devel\";\n fi\n\n test \"${PACKAGES}\" = \"\" || {\n ${SUDO} zypper install -y ${PACKAGES};\n }\n\n if [ ${INSTALL_JDK} = true ]; then\n ln -s /usr/lib/jvm/java-1.8.0-openjdk $JAVA_HOME\n fi\n\n\n# Alpine 3.3\n############$$\nelif echo ${LINUX_TYPE} | grep -qi \"alpine\"; then\n\n if [ ${INSTALL_JDK} = true ]; then\n PACKAGES=${PACKAGES}\" openjdk8\";\n fi\n\n test \"${PACKAGES}\" = \"\" || {\n ${SUDO} apk update\n ${SUDO} apk add ${PACKAGES};\n }\n\n # Link OpenJDK to JAVA_HOME\n if [ ${INSTALL_JDK} = true ]; then\n ln -s /usr/lib/jvm/java-1.8-openjdk $JAVA_HOME\n fi\n\n# Centos 6.6, 6.7, 6.8\n############\nelif echo ${LINUX_TYPE} | grep -qi \"CentOS\"; then\n\n if [ ${INSTALL_JDK} = true ]; then\n PACKAGES=${PACKAGES}\" java-1.8.0-openjdk-devel\";\n fi\n\n test \"${PACKAGES}\" = \"\" || {\n ${SUDO} yum -y install ${PACKAGES};\n }\n\n if [ ${INSTALL_JDK} = true ]; then\n ln -s /usr/lib/jvm/java-1.8.0-openjdk $JAVA_HOME\n fi\n\n# Red Hat Enterprise Linux 6 \n############################\nelif echo ${LINUX_TYPE} | grep -qi \"Red Hat\"; then\n if [ ${INSTALL_JDK} = true ]; then\n PACKAGES=${PACKAGES}\" java-1.8.0-openjdk-devel.x86_64\";\n fi\n\n test \"${PACKAGES}\" = \"\" || {\n ${SUDO} yum install ${PACKAGES};\n }\n\n if [ ${INSTALL_JDK} = true ]; then\n ln -s /usr/lib/jvm/java-1.8.0-openjdk $JAVA_HOME\n fi\n\nelse\n >&2 echo \"Unrecognized Linux Type\"\n >&2 cat $FILE\n exit 1\nfi\n\n########################\n### Install ws-agent ###\n########################\n\nrm -rf ${CHE_DIR}/ws-agent\nmkdir -p ${CHE_DIR}/ws-agent\n\n\n# Compute URI of workspace master\nWORKSPACE_MASTER_URI=$(echo $CHE_API | cut -d / -f 1-3)\n\n## Evaluate variables now that prefix is defined\neval \"DOWNLOAD_AGENT_BINARIES_URI=${DOWNLOAD_AGENT_BINARIES_URI}\"\n\n\nif [ -f \"${LOCAL_AGENT_BINARIES_URI}\" ] && [ -s \"${LOCAL_AGENT_BINARIES_URI}\" ]\nthen\n AGENT_BINARIES_URI=\"file://${LOCAL_AGENT_BINARIES_URI}\"\nelse\n echo \"Workspace Agent will be downloaded from Workspace Master\"\n AGENT_BINARIES_URI=${DOWNLOAD_AGENT_BINARIES_URI}\nfi\n\ncurl -s ${AGENT_BINARIES_URI} | tar xzf - -C ${CHE_DIR}/ws-agent\n\n###############################################\n### ws-agent run command will be added here ###\n### ~/che/ws-agent/bin/catalina.sh run ###\n###############################################" } diff --git a/agents/che-core-api-agent/src/main/resources/agents/scripts/org.eclipse.che.ws-agent.script.sh b/agents/che-core-api-agent/src/main/resources/agents/scripts/org.eclipse.che.ws-agent.script.sh index 9fd5bee15d..2a5399673a 100644 --- a/agents/che-core-api-agent/src/main/resources/agents/scripts/org.eclipse.che.ws-agent.script.sh +++ b/agents/che-core-api-agent/src/main/resources/agents/scripts/org.eclipse.che.ws-agent.script.sh @@ -231,7 +231,7 @@ WORKSPACE_MASTER_URI=$(echo $CHE_API | cut -d / -f 1-3) eval "DOWNLOAD_AGENT_BINARIES_URI=${DOWNLOAD_AGENT_BINARIES_URI}" -if [ -f "${LOCAL_AGENT_BINARIES_URI}" ] +if [ -f "${LOCAL_AGENT_BINARIES_URI}" ] && [ -s "${LOCAL_AGENT_BINARIES_URI}" ] then AGENT_BINARIES_URI="file://${LOCAL_AGENT_BINARIES_URI}" else