2015-11-16 11:21:57 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# Copyright (c) .NET Foundation and contributors. All rights reserved. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Licensed under the MIT license. See LICENSE file in the project root for full license information. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 17:30:01 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# Note: This script should be compatible with the dash shell used in Ubuntu. So avoid bashisms! See https://wiki.ubuntu.com/DashAsBinSh for more info 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# Stop script on NZEC 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								set  -e
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Stop script if unbound variable found (use ${var:-} if intentional) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								set  -u
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# By default cmd1 | cmd2 returns exit code of cmd2 regardless of cmd1 success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# This is causing it to fail 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								set  -o pipefail
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Use in the the functions: eval $invocation 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								invocation = 'say_verbose "Calling: ${yellow:-}${FUNCNAME[0]} ${green:-}$*${normal:-}"' 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# standard output may be used as a return value in the functions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# we need a way to write text on the screen in the functions so that 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# it won't interfere with the return value. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Exposing stream 3 as a pipe to standard output of the script itself 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								exec  3>& 1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Setup some colors to use. These need to work in fairly limited shells, like the Ubuntu Docker container where there are only 8 colors. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# See if stdout is a terminal 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								if  [  -t 1  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # see if it supports colors 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ncolors = $( tput colors) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  [  -n " $ncolors "  ]  &&  [  $ncolors  -ge 8  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        bold = " $( tput bold) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        normal = " $( tput sgr0) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        black = " $( tput setaf 0) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        red = " $( tput setaf 1) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        green = " $( tput setaf 2) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        yellow = " $( tput setaf 3) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        blue = " $( tput setaf 4) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        magenta = " $( tput setaf 5) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        cyan = " $( tput setaf 6) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        white = " $( tput setaf 7) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								say_err( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    printf  "%b\n"  " ${ red :- } dotnet_install: Error:  $1 ${ normal :- } "  >& 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								say( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # using stream 3 (defined in the beginning) to not interfere with stdout of functions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # which may be used as return value 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    printf  "%b\n"  " ${ cyan :- } dotnet_install: ${ normal :- }   $1 "  >& 3 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								say_verbose( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  [  " $verbose "  =  true  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        say " $1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								get_current_os_name( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-17 16:15:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    local  uname = $( uname) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  [  " $uname "  =  "Darwin"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        echo  "osx" 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        return  0 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2015-12-15 18:15:31 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        # Detect Distro 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  [  " $( cat /etc/*-release |  grep -cim1 ubuntu) "  -eq 1  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "ubuntu" 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            return  0 
							 
						 
					
						
							
								
									
										
										
										
											2015-12-15 18:15:31 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        elif  [  " $( cat /etc/*-release |  grep -cim1 centos) "  -eq 1  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "centos" 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            return  0 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-02 16:20:45 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        elif  [  " $( cat /etc/*-release |  grep -cim1 rhel) "  -eq 1  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-11 14:32:36 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            echo  "rhel" 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            return  0 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-03 18:38:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        elif  [  " $( cat /etc/*-release |  grep -cim1 debian) "  -eq 1  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "debian" 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            return  0 
							 
						 
					
						
							
								
									
										
										
										
											2015-12-15 18:15:31 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        fi 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    say_err "OS name could not be detected" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  1 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 17:30:01 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								machine_has( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2016-03-15 13:43:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    which " $1 "  > /dev/null 2>& 1 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    return  $? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								check_min_reqs( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  ! machine_has "curl" ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        say_err "curl is required to download dotnet. Install curl to proceed." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 17:30:01 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								check_pre_reqs( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  failing = false; 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 17:30:01 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  [  " ${ DOTNET_INSTALL_SKIP_PREREQS :- } "  =  "1"  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 17:30:01 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-11 11:31:50 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  [  " $( uname) "  =  "Linux"  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-03 18:38:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        if  ! [  -x " $( command  -v ldconfig) "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "ldconfig is not in PATH, trying /sbin/ldconfig." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            LDCONFIG_COMMAND = "/sbin/ldconfig" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            LDCONFIG_COMMAND = "ldconfig" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        [  -z " $( $LDCONFIG_COMMAND  -p |  grep libunwind) "  ]  &&  say_err "Unable to locate libunwind. Install libunwind to continue"  &&  failing = true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        [  -z " $( $LDCONFIG_COMMAND  -p |  grep libssl) "  ]  &&  say_err "Unable to locate libssl. Install libssl to continue"  &&  failing = true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        [  -z " $( $LDCONFIG_COMMAND  -p |  grep libcurl) "  ]  &&  say_err "Unable to locate libcurl. Install libcurl to continue"  &&  failing = true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        [  -z " $( $LDCONFIG_COMMAND  -p |  grep libicu) "  ]  &&  say_err "Unable to locate libicu. Install libicu to continue"  &&  failing = true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        [  -z " $( $LDCONFIG_COMMAND  -p |  grep gettext) "  ]  &&  say_err "Unable to locate gettext. Install gettext to continue"  &&  failing = true 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-11 11:31:50 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 17:30:01 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  [  " $failing "  =  true  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								       return  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  0 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# args: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# input - $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								to_lowercase( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-17 16:15:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    #eval $invocation 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    echo  " $1 "  |  tr '[:upper:]'  '[:lower:]' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  0 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# args: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# input - $1 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								remove_trailing_slash( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-17 16:15:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    #eval $invocation 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2016-03-17 16:15:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    local  input = ${ 1 :- } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    echo  " ${ input %/ } " 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    return  0 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 17:30:01 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# args: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# input - $1 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								remove_beginning_slash( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-17 16:15:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    #eval $invocation 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2016-03-17 16:15:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    local  input = ${ 1 :- } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    echo  " ${ input #/ } " 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    return  0 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-18 02:31:03 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# args: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# root_path - $1 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-17 16:15:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# child_path - $2 - this parameter can be empty 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								combine_paths( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # TODO: Consider making it work with any number of paths. For now: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  [  ! -z " ${ 3 :- } "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        say_err "combine_paths: Function takes two parameters." 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        return  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    local  root_path = $( remove_trailing_slash $1 ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-17 16:15:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    local  child_path = $( remove_beginning_slash ${ 2 :- } ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    say_verbose " combine_paths: root_path= $root_path " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    say_verbose " combine_paths: child_path= $child_path " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    echo  " $root_path / $child_path " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-11 10:19:50 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								get_machine_architecture( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Currently the only one supported 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    echo  "x64" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# args: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# architecture - $1 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								get_normalized_architecture_from_architecture( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  architecture = $( to_lowercase $1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    case  $architecture  in
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        \< auto\> ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  " $( get_normalized_architecture_from_architecture $( get_machine_architecture) ) " 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        amd64| x64) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "x64" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        x86) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            say_err "Architecture ``x86`` currently not supported" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    esac 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    say_err " Architecture `` $architecture `` not supported. If you think this is a bug, please report it at https://github.com/dotnet/cli/issues " 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    return  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-11 10:47:49 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# version_info is a conceptual two line string representing commit hash and 4-part version 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# format: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Line 1: # commit_hash 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Line 2: # 4-part version 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-11 10:47:49 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# args: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# version_text - stdin 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								get_version_from_version_info( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-18 02:31:03 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    cat |  tail -n 1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 17:30:01 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# args: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# version_text - stdin 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								get_commit_hash_from_version_info( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    cat |  head -n 1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 17:30:01 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-24 15:14:51 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# args: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# install_root - $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# relative_path_to_package - $2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# specific_version - $3 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								is_dotnet_package_installed( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  install_root = $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  relative_path_to_package = $2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  specific_version = $3 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  dotnet_package_path = $( combine_paths $( combine_paths $install_root  $relative_path_to_package )  $specific_version ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    say_verbose " is_dotnet_package_installed: dotnet_package_path= $dotnet_package_path " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  [  -d " $dotnet_package_path "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# args: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# azure_feed - $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# azure_channel - $2 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# normalized_architecture - $3 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								get_latest_version_info( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  azure_feed = $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  azure_channel = $2 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    local  normalized_architecture = $3 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  osname = $( get_current_os_name) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2016-03-17 16:15:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    local  version_file_url = " $azure_feed / $azure_channel /dnvm/latest. $osname . $normalized_architecture .version " 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    say_verbose " get_latest_version_info: latest url:  $version_file_url " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    download $version_file_url 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  $? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-11 20:56:12 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# args: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# channel - $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								get_azure_channel_from_channel( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  channel = $( to_lowercase $1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    case  $channel  in
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        future| dev) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "dev" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        preview| beta) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "beta" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        production) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            say_err "Production channel does not exist yet" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    esac 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    say_err " `` $1 `` is an invalid channel name. Use one of the following: ``future``, ``preview``, ``production`` " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-11 20:56:12 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# args: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# azure_feed - $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# azure_channel - $2 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# normalized_architecture - $3 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# version - $4 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								get_specific_version_from_version( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  azure_feed = $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  azure_channel = $2 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    local  normalized_architecture = $3 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    local  version = $( to_lowercase $4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    case  $version  in
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        latest) 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            local  version_info = " $( get_latest_version_info $azure_feed  $azure_channel  $normalized_architecture ) " 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            say_verbose " get_specific_version_from_version: version_info= $version_info " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  " $version_info "  |  get_version_from_version_info
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        lkg) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            say_err "``--version LKG`` not supported yet." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        *) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  $version 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    esac 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-11 20:56:12 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# args: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# azure_feed - $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# azure_channel - $2 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# normalized_architecture - $3 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# specific_version - $4 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								construct_download_link( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  azure_feed = $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  azure_channel = $2 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    local  normalized_architecture = $3 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    local  specific_version = $4 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  osname = $( get_current_os_name) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2016-03-21 11:11:37 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    local  download_link = " $azure_feed / $azure_channel /Binaries/ $specific_version /dotnet-dev- $osname - $normalized_architecture . $specific_version .tar.gz " 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    echo  " $download_link " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								get_user_share_path( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  [  ! -z " ${ DOTNET_INSTALL_DIR :- } "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        echo  $DOTNET_INSTALL_DIR 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        echo  "/usr/local/share/dotnet" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# args: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# install_dir - $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								resolve_installation_path( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  install_dir = $1 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-15 13:43:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  [  " $install_dir "  =  "<auto>"  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        local  user_share_path = $( get_user_share_path) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        say_verbose " resolve_installation_path: share_path= $user_share_path " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        echo  " $user_share_path " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    echo  " $install_dir " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# args: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# install_root - $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								get_installed_version_info( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  install_root = $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  version_file = $( combine_paths " $install_root "  " $local_version_file_relative_path " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    say_verbose " Local version file:  $version_file " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  [  ! -z " $version_file "  ]  |  [  -r " $version_file "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        local  version_info = " $( cat $version_file ) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        echo  " $version_info " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    say_verbose "Local version file not found." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# args: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# relative_or_absolute_path - $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								get_absolute_path( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  relative_or_absolute_path = $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    echo  $( cd  $( dirname " $1 " )  &&  pwd  -P) /$( basename " $1 " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-17 16:15:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# args: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# input_files - stdin 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# root_path - $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# out_path - $2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# override - $3 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								copy_files_or_dirs_from_list( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  root_path = $( remove_trailing_slash $1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  out_path = $( remove_trailing_slash $2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  override = $3 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  override_switch = $( if  [  " $override "  =  false  ] ;  then  printf  -- "-n" ;  fi ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    cat |  uniq |  while  read  -r file_path;  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        local  path = $( remove_beginning_slash ${ file_path # $root_path } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        local  target = $out_path /$path 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  [  " $override "  =  true  ]  ||  ( ! ( [  -d " $target "  ]  ||  [  -e " $target "  ] ) ) ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            mkdir -p $out_path /$( dirname $path ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            cp -R $override_switch  $root_path /$path  $target 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    done 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# args: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# zip_path - $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# out_path - $2 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-17 16:15:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								extract_dotnet_package( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  zip_path = $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  out_path = $2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2016-03-21 19:16:51 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    local  temp_out_path = $( mktemp -d $temporary_file_template ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-17 16:15:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    local  failed = false 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-17 16:15:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    tar -xzf " $zip_path "  -C " $temp_out_path "  > /dev/null ||  failed = true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2016-03-21 16:31:17 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    local  folders_with_version_regex = '^.*/[0-9]+\.[0-9]+[^/]+/' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    find $temp_out_path  -type f |  grep -Eo $folders_with_version_regex  |  copy_files_or_dirs_from_list $temp_out_path  $out_path  false 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    find $temp_out_path  -type f |  grep -Ev $folders_with_version_regex  |  copy_files_or_dirs_from_list $temp_out_path  $out_path  true 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-17 16:15:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    rm -rf $temp_out_path 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2016-03-15 13:43:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  [  " $failed "  =  true  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        say_err "Extraction failed" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# args: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# remote_path - $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# [out_path] - $2 - stdout if not provided 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								download( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  remote_path = $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    local  out_path = ${ 2 :- } 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 17:30:01 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    local  failed = false 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  [  -z " $out_path "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        curl --fail -s $remote_path  ||  failed = true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        curl --fail -s -o $out_path  $remote_path  ||  failed = true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2016-03-15 13:43:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  [  " $failed "  =  true  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        say_err "Download failed" 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 17:30:01 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        return  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								calculate_vars( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    azure_channel = $( get_azure_channel_from_channel " $channel " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    say_verbose " azure_channel= $azure_channel " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    normalized_architecture = $( get_normalized_architecture_from_architecture " $architecture " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    say_verbose " normalized_architecture= $normalized_architecture " 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    specific_version = $( get_specific_version_from_version $azure_feed  $azure_channel  $normalized_architecture  $version ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    say_verbose " specific_version= $specific_version " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  [  -z " $specific_version "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        say_err "Could not get version information." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  1 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-16 10:55:24 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    download_link = $( construct_download_link $azure_feed  $azure_channel  $normalized_architecture  $specific_version ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    say_verbose " download_link= $download_link " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    install_root = $( resolve_installation_path $install_dir ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    say_verbose " install_root= $install_root " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-11 10:19:50 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								install_dotnet( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    eval  $invocation 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-24 15:14:51 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  is_dotnet_package_installed $install_root  "sdk"  $specific_version ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        say " .NET SDK version  $specific_version  is already installed. " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    mkdir -p $install_root 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-21 19:16:51 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    zip_path = $( mktemp $temporary_file_template ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    say_verbose " Zip path:  $zip_path " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    say " Downloading  $download_link " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    download " $download_link "  $zip_path 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 13:53:36 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    say_verbose " Downloaded file exists and readable?  $( if  [  -r $zip_path  ] ;  then  echo  "yes" ;  else  echo  "no" ;  fi ) " 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    say "Extracting zip" 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-17 16:15:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    extract_dotnet_package $zip_path  $install_root 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  0 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 15:34:58 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 17:30:01 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								local_version_file_relative_path = "/.version" 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-17 16:15:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								bin_folder_relative_path = "" 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-21 19:16:51 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								temporary_file_template = " ${ TMPDIR :- /tmp } /dotnet.XXXXXXXXX " 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								channel = "preview" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								version = "Latest" 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 11:46:14 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								install_dir = "<auto>" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								architecture = "<auto>" 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								debug_symbols = false 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								dry_run = false 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								no_path = false 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								azure_feed = "https://dotnetcli.blob.core.windows.net/dotnet" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								verbose = false 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 17:30:01 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								while  [  $#  -ne 0  ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								do 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-04 09:58:26 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    name = $1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    case  $name  in
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 16:56:44 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        -c| --channel| -[ Cc] hannel) 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-04 09:58:26 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            shift 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            channel = $1 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-04 09:58:26 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 16:56:44 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        -v| --version| -[ Vv] ersion) 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-11 10:47:49 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            shift 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            version = " $1 " 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-11 10:47:49 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 16:56:44 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        -i| --install-dir| -[ Ii] nstall[ Dd] ir) 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-04 09:58:26 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            shift 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            install_dir = " $1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 16:56:44 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        --arch| --architecture| -[ Aa] rch| -[ Aa] rchitecture) 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            shift 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            architecture = " $1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 16:56:44 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        --debug-symbols| -[ Dd] ebug[ Ss] ymbols) 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            debug_symbols = true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 16:56:44 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        --dry-run| -[ Dd] ry[ Rr] un) 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            dry_run = true 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-04 09:58:26 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 16:56:44 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        --no-path| -[ Nn] o[ Pp] ath) 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            no_path = true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 16:56:44 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        --verbose| -[ Vv] erbose) 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            verbose = true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 16:56:44 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        --azure-feed| -[ Aa] zure[ Ff] eed) 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            shift 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            azure_feed = " $1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 16:56:44 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        -?| --?| -h| --help| -[ Hh] elp) 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            script_name = " $( basename $0 ) " 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-04 09:58:26 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            echo  ".NET Tools Installer" 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            echo  " Usage:  $script_name  [-c|--channel <CHANNEL>] [-v|--version <VERSION>] [-p|--prefix <DESTINATION>] " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "         $script_name  -h|-?|--help " 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-04 09:58:26 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            echo  "" 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            echo  " $script_name  is a simple command line interface for obtaining dotnet cli. " 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-04 09:58:26 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            echo  "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "Options:" 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            echo  "   -c,--channel <CHANNEL>         Download from the CHANNEL specified (default:  $channel ). " 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 16:56:44 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            echo  "      -Channel" 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            echo  "  -v,--version <VERSION>         Use specific version, ``latest`` or ``lkg``. Defaults to ``latest``." 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 16:56:44 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            echo  "      -Version" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "  -i,--install-dir <DIR>         Install under specified location (see Install Location below)" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "      -InstallDir" 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            echo  "  --architecture <ARCHITECTURE>  Architecture of .NET Tools. Currently only x64 is supported." 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 16:56:44 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            echo  "      --arch,-Architecture,-Arch" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "  --debug-symbols,-DebugSymbols  Specifies if symbols should be included in the installation." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "  --dry-run,-DryRun              Do not perform installation. Display download link." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "  --no-path, -NoPath             Do not set PATH for the current process." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "  --verbose,-Verbose             Display diagnostics information." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "   --azure-feed,-AzureFeed        Azure feed location. Defaults to  $azure_feed " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "  -?,--?,-h,--help,-Help         Shows this help message" 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-04 09:58:26 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            echo  "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "Install Location:" 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            echo  "  Location is chosen in following order:" 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 16:56:44 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            echo  "    - --install-dir option" 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            echo  "    - Environmental variable DOTNET_INSTALL_DIR" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            echo  "    - /usr/local/share/dotnet" 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-04 09:58:26 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            exit  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        *) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            say_err " Unknown argument \` $name \` " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            exit  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-04 09:58:26 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    esac 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-11-10 17:30:01 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    shift 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								done 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								check_min_reqs
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								calculate_vars
							 
						 
					
						
							
								
									
										
										
										
											2016-03-15 13:43:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								if  [  " $dry_run "  =  true  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    say " Payload URL:  $download_link " 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-14 16:56:44 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    say " Repeatable invocation: ./ $( basename $0 )  --version  $specific_version  --channel  $channel  --install-dir  $install_dir " 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-17 16:15:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    return  0 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-04 09:58:26 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-17 16:15:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								check_pre_reqs
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								install_dotnet
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								bin_path = $( get_absolute_path $( combine_paths $install_root  $bin_folder_relative_path ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-15 13:43:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								if  [  " $no_path "  =  false  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    say " Adding to current process PATH: `` $bin_path ``. Note: This change will be visible only when sourcing script. " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    export  PATH = $PATH :$bin_path 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    say " Binaries of dotnet can be found in  $bin_path " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								fi 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-04 09:58:26 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-10 14:26:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								say "Installation finished successfuly."