67 lines
1.8 KiB
Bash
67 lines
1.8 KiB
Bash
#!/bin/bash
|
|
|
|
# Copyright 2017 FUJITSU LIMITED
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
|
|
_XTRACE_UTILS=$(set +o | grep xtrace)
|
|
set +o xtrace
|
|
|
|
# download_file
|
|
# $1 - url to download
|
|
# $2 - location where to save url to
|
|
#
|
|
# Download file only when it not exists or there is newer version of it.
|
|
#
|
|
# Uses global variables:
|
|
# - OFFLINE
|
|
# - DOWNLOAD_FILE_TIMEOUT
|
|
function download_file {
|
|
local url=$1
|
|
local file=$2
|
|
|
|
# If in OFFLINE mode check if file already exists
|
|
if [[ ${OFFLINE} == "True" ]] && [[ ! -f ${file} ]]; then
|
|
die $LINENO "You are running in OFFLINE mode but
|
|
the target file \"$file\" was not found"
|
|
fi
|
|
|
|
local curl_z_flag=""
|
|
if [[ -f "${file}" ]]; then
|
|
# If the file exists tell cURL to download only if newer version
|
|
# is available
|
|
curl_z_flag="-z $file"
|
|
fi
|
|
|
|
# yeah...downloading...devstack...hungry..om, om, om
|
|
local timeout=0
|
|
|
|
if [[ -n "${DOWNLOAD_FILE_TIMEOUT}" ]]; then
|
|
timeout=${DOWNLOAD_FILE_TIMEOUT}
|
|
fi
|
|
|
|
time_start "download_file"
|
|
_safe_permission_operation ${CURL_GET} -L $url --connect-timeout $timeout --retry 3 --retry-delay 5 -o $file $curl_z_flag
|
|
time_stop "download_file"
|
|
}
|
|
|
|
function configure_log_dir {
|
|
local logdir=$1
|
|
|
|
sudo mkdir -p $logdir
|
|
sudo chmod -R 0777 $logdir
|
|
}
|
|
|
|
$_XTRACE_UTILS
|