2018-10-21 22:07:26 -07:00
#!/usr/bin/env bash
source = " ${ BASH_SOURCE [0] } "
scriptroot = " $( cd -P " $( dirname " $source " ) " && pwd ) "
. $scriptroot /common-library.sh
base_uri =
install_path =
version =
clean = false
force = false
download_retries = 5
retry_wait_time_seconds = 30
while ( ( $# > 0) ) ; do
2021-01-09 13:53:15 +00:00
lowerI = " $( echo $1 | tr "[:upper:]" "[:lower:]" ) "
2018-10-21 22:07:26 -07:00
case $lowerI in
--baseuri)
base_uri = $2
shift 2
; ;
--installpath)
install_path = $2
shift 2
; ;
--version)
version = $2
shift 2
; ;
--clean)
clean = true
shift 1
; ;
--force)
force = true
shift 1
; ;
--downloadretries)
download_retries = $2
shift 2
; ;
--retrywaittimeseconds)
retry_wait_time_seconds = $2
shift 2
; ;
--help)
echo "Common settings:"
echo " --baseuri <value> Base file directory or Url wrom which to acquire tool archives"
echo " --installpath <value> Base directory to install native tool to"
echo " --clean Don't install the tool, just clean up the current install of the tool"
echo " --force Force install of tools even if they previously exist"
echo " --help Print help and exit"
echo ""
echo "Advanced settings:"
echo " --downloadretries Total number of retry attempts"
echo " --retrywaittimeseconds Wait time between retry attempts in seconds"
echo ""
exit 0
; ;
esac
done
tool_name = "cmake"
tool_os = $( GetCurrentOS)
2021-01-09 13:53:15 +00:00
tool_folder = " $( echo $tool_os | tr "[:upper:]" "[:lower:]" ) "
2018-10-21 22:07:26 -07:00
tool_arch = "x86_64"
tool_name_moniker = " $tool_name - $version - $tool_os - $tool_arch "
tool_install_directory = " $install_path / $tool_name / $version "
tool_file_path = " $tool_install_directory / $tool_name_moniker /bin/ $tool_name "
shim_path = " $install_path / $tool_name .sh "
2019-08-01 12:38:10 +00:00
uri = " ${ base_uri } / $tool_folder / $tool_name / $tool_name_moniker .tar.gz "
2018-10-21 22:07:26 -07:00
# Clean up tool and installers
if [ [ $clean = true ] ] ; then
echo " Cleaning $tool_install_directory "
if [ [ -d $tool_install_directory ] ] ; then
rm -rf $tool_install_directory
fi
echo " Cleaning $shim_path "
if [ [ -f $shim_path ] ] ; then
rm -rf $shim_path
fi
tool_temp_path = $( GetTempPathFileName $uri )
echo " Cleaning $tool_temp_path "
if [ [ -f $tool_temp_path ] ] ; then
rm -rf $tool_temp_path
fi
exit 0
fi
# Install tool
if [ [ -f $tool_file_path ] ] && [ [ $force = false ] ] ; then
echo " $tool_name ( $version ) already exists, skipping install "
exit 0
fi
DownloadAndExtract $uri $tool_install_directory $force $download_retries $retry_wait_time_seconds
if [ [ $? != 0 ] ] ; then
2019-11-22 13:41:58 +00:00
Write-PipelineTelemetryError -category 'NativeToolsBootstrap' 'Installation failed'
2018-10-21 22:07:26 -07:00
exit 1
fi
# Generate Shim
# Always rewrite shims so that we are referencing the expected version
NewScriptShim $shim_path $tool_file_path true
if [ [ $? != 0 ] ] ; then
2019-11-22 13:41:58 +00:00
Write-PipelineTelemetryError -category 'NativeToolsBootstrap' 'Shim generation failed'
2018-10-21 22:07:26 -07:00
exit 1
fi
2021-01-09 13:53:15 +00:00
exit 0