From 60e2e9ae8a4ec58e4deeacdf86b8e817eaff1a83 Mon Sep 17 00:00:00 2001 From: Bartek Grzybowski Date: Tue, 2 Jul 2019 10:15:36 +0200 Subject: Verify dependencies for build_nexus_blob.sh are installed Script now checks if utilized tools are installed on the system. Without that it would fail in the middle of the flow. Now it will fail fast at the beginning if a particular dependency is missing. It will also list those missing dependencies. Change-Id: I39bb6f5d1b9d3eec4a76e77a6af9470f3a3d5244 Issue-ID: OOM-1945 Signed-off-by: Bartek Grzybowski --- build/build_nexus_blob.sh | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/build/build_nexus_blob.sh b/build/build_nexus_blob.sh index 5f4ed0ff..1e21a23a 100755 --- a/build/build_nexus_blob.sh +++ b/build/build_nexus_blob.sh @@ -20,7 +20,7 @@ ### This script prepares Nexus repositories data blobs for ONAP -## The script requires following dependencies are installed: nodejs, jq, docker, twine +## The script requires following dependencies are installed: nodejs, jq, docker, twine, expect ## All required resources are expected in the upper directory created during ## download procedure as DATA_DIR or in the directory given as --input-directory ## All lists used must be in project data_lists directory or in the directory given @@ -52,12 +52,15 @@ NEXUS_EMAIL=admin@example.org # Setting paths LOCAL_PATH="$(readlink -f $(dirname ${0}))" -#Defaults +# Defaults DOCKER_LOAD="false" DATA_DIR="$(realpath ${LOCAL_PATH}/../../resources)" NEXUS_DATA_DIR="${DATA_DIR}/nexus_data" LISTS_DIR="${LOCAL_PATH}/data_lists" +# Required dependencies +COMMANDS=(jq docker expect npm twine) + usage () { echo " Example usage: build_nexus_blob.sh --input-directory --output-directory --resource-list-directory [--load-docker-images] @@ -76,6 +79,20 @@ load_docker_images () { done } +# Verify all dependencies are available in PATH +FAILED_COMMANDS=() +for cmd in ${COMMANDS[*]}; +do + command -v $cmd >/dev/null 2>&1 || FAILED_COMMANDS+=($cmd) +done +if [ ${#FAILED_COMMANDS[*]} -gt 0 ]; +then + echo "Following commands where not found in PATH and are required:" + echo ${FAILED_COMMANDS[*]} + echo "Aborting." + exit 1 +fi + while [ "${1}" != "" ]; do case ${1} in -i | --input-directory ) shift -- cgit 1.2.3-korg