jib.sh revision 1822:75c3897541ec
1#!/bin/bash 2# 3# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 4# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5# 6# This code is free software; you can redistribute it and/or modify it 7# under the terms of the GNU General Public License version 2 only, as 8# published by the Free Software Foundation. 9# 10# This code is distributed in the hope that it will be useful, but WITHOUT 11# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 13# version 2 for more details (a copy is included in the LICENSE file that 14# accompanied this code). 15# 16# You should have received a copy of the GNU General Public License version 17# 2 along with this work; if not, write to the Free Software Foundation, 18# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 19# 20# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 21# or visit www.oracle.com if you need additional information or have any 22# questions. 23# 24 25# This script installs the JIB tool into it's own local repository and 26# puts a wrapper scripts into <source-root>/.jib 27 28mydir="$(dirname "${BASH_SOURCE[0]}")" 29myname="$(basename "${BASH_SOURCE[0]}")" 30 31installed_jib_script=${mydir}/../../.jib/jib 32install_data=${mydir}/../../.jib/.data 33 34setup_url() { 35 if [ -f "~/.config/jib/jib.conf" ]; then 36 source ~/.config/jib/jib.conf 37 fi 38 39 jib_repository="jdk-virtual" 40 jib_organization="jpg/infra/builddeps" 41 jib_module="jib" 42 jib_revision="2.0-SNAPSHOT" 43 jib_ext="jib.sh.gz" 44 45 closed_script="${mydir}/../../closed/conf/jib-install.conf" 46 if [ -f "${closed_script}" ]; then 47 source "${closed_script}" 48 fi 49 50 if [ -n "${JIB_SERVER}" ]; then 51 jib_server="${JIB_SERVER}" 52 fi 53 if [ -n "${JIB_REPOSITORY}" ]; then 54 jib_repository="${JIB_REPOSITORY}" 55 fi 56 if [ -n "${JIB_ORGANIZATION}" ]; then 57 jib_organization="${JIB_ORGANIZATION}" 58 fi 59 if [ -n "${JIB_MODULE}" ]; then 60 jib_module="${JIB_MODULE}" 61 fi 62 if [ -n "${JIB_REVISION}" ]; then 63 jib_revision="${JIB_REVISION}" 64 fi 65 if [ -n "${JIB_EXTENSION}" ]; then 66 jib_extension="${JIB_EXTENSION}" 67 fi 68 69 if [ -n "${JIB_URL}" ]; then 70 jib_url="${JIB_URL}" 71 data_string="${jib_url}" 72 else 73 data_string="${jib_repository}/${jib_organization}/${jib_module}/${jib_revision}/${jib_module}-${jib_revision}.${jib_ext}" 74 jib_url="${jib_server}/${data_string}" 75 fi 76} 77 78install_jib() { 79 if [ -z "${jib_server}" -a -z "${JIB_URL}" ]; then 80 echo "No jib server or URL provided, set either" 81 echo "JIB_SERVER=<base server address>" 82 echo "or" 83 echo "JIB_URL=<full path to install script>" 84 exit 1 85 fi 86 87 if command -v curl > /dev/null; then 88 getcmd="curl -s" 89 elif command -v wget > /dev/null; then 90 getcmd="wget --quiet -O -" 91 else 92 echo "Could not find either curl or wget" 93 exit 1 94 fi 95 96 if ! command -v gunzip > /dev/null; then 97 echo "Could not find gunzip" 98 exit 1 99 fi 100 101 echo "Downloading JIB bootstrap script" 102 mkdir -p "${installed_jib_script%/*}" 103 rm -f "${installed_jib_script}.gz" 104 ${getcmd} ${jib_url} > "${installed_jib_script}.gz" 105 if [ ! -s "${installed_jib_script}.gz" ]; then 106 echo "Failed to download ${jib_url}" 107 exit 1 108 fi 109 echo "Extracting JIB bootstrap script" 110 rm -f "${installed_jib_script}" 111 gunzip "${installed_jib_script}.gz" 112 chmod +x "${installed_jib_script}" 113 echo "${data_string}" > "${install_data}" 114} 115 116# Main body starts here 117 118setup_url 119 120if [ ! -x "${installed_jib_script}" ]; then 121 install_jib 122elif [ ! -e "${install_data}" ] || [ "${data_string}" != "$(cat "${install_data}")" ]; then 123 echo "Install url changed since last time, reinstalling" 124 install_jib 125fi 126 127${installed_jib_script} "$@" 128