parent
31c7588c13
commit
b3bd761252
2
dnvm.ps1
2
dnvm.ps1
|
|
@ -67,7 +67,7 @@ function _WriteOut {
|
||||||
|
|
||||||
### Constants
|
### Constants
|
||||||
$ProductVersion="1.0.0"
|
$ProductVersion="1.0.0"
|
||||||
$BuildVersion="beta5-10359"
|
$BuildVersion="beta5-10360"
|
||||||
$Authors="Microsoft Open Technologies, Inc."
|
$Authors="Microsoft Open Technologies, Inc."
|
||||||
|
|
||||||
# If the Version hasn't been replaced...
|
# If the Version hasn't been replaced...
|
||||||
|
|
|
||||||
84
dnvm.sh
84
dnvm.sh
|
|
@ -2,7 +2,7 @@
|
||||||
# Source this file from your .bash-profile or script to use
|
# Source this file from your .bash-profile or script to use
|
||||||
|
|
||||||
# "Constants"
|
# "Constants"
|
||||||
_DNVM_BUILDNUMBER="beta5-10359"
|
_DNVM_BUILDNUMBER="beta5-10360"
|
||||||
_DNVM_AUTHORS="Microsoft Open Technologies, Inc."
|
_DNVM_AUTHORS="Microsoft Open Technologies, Inc."
|
||||||
_DNVM_RUNTIME_PACKAGE_NAME="dnx"
|
_DNVM_RUNTIME_PACKAGE_NAME="dnx"
|
||||||
_DNVM_RUNTIME_FRIENDLY_NAME=".NET Execution Environment"
|
_DNVM_RUNTIME_FRIENDLY_NAME=".NET Execution Environment"
|
||||||
|
|
@ -54,6 +54,16 @@ if [ -z "$DNX_FEED" ]; then
|
||||||
DNX_FEED="$_DNVM_DEFAULT_FEED"
|
DNX_FEED="$_DNVM_DEFAULT_FEED"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
__dnvm_current_os()
|
||||||
|
{
|
||||||
|
local uname=$(uname)
|
||||||
|
if [[ $uname == "Darwin" ]]; then
|
||||||
|
echo "darwin"
|
||||||
|
else
|
||||||
|
echo "linux"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
__dnvm_find_latest() {
|
__dnvm_find_latest() {
|
||||||
local platform="mono"
|
local platform="mono"
|
||||||
|
|
||||||
|
|
@ -96,6 +106,14 @@ __dnvm_package_runtime() {
|
||||||
echo "$runtimeFullName" | sed "s/$_DNVM_RUNTIME_PACKAGE_NAME-\([^.-]*\).*/\1/"
|
echo "$runtimeFullName" | sed "s/$_DNVM_RUNTIME_PACKAGE_NAME-\([^.-]*\).*/\1/"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__dnvm_package_arch() {
|
||||||
|
local runtimeFullName="$1"
|
||||||
|
if [[ "$runtimeFullName" =~ $_DNVM_RUNTIME_PACKAGE_NAME-[^-.]*-[^-.]*-[^-.]*\..* ]];
|
||||||
|
then
|
||||||
|
echo "$runtimeFullName" | sed "s/$_DNVM_RUNTIME_PACKAGE_NAME-[^-.]*-[^-.]*-\([^-.]*\)\..*/\1/"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
__dnvm_update_self() {
|
__dnvm_update_self() {
|
||||||
local dnvmFileLocation="$_DNVM_DNVM_DIR/dnvm.sh"
|
local dnvmFileLocation="$_DNVM_DNVM_DIR/dnvm.sh"
|
||||||
if [ ! -e $dnvmFileLocation ]; then
|
if [ ! -e $dnvmFileLocation ]; then
|
||||||
|
|
@ -180,23 +198,33 @@ __dnvm_unpack() {
|
||||||
|
|
||||||
__dnvm_requested_version_or_alias() {
|
__dnvm_requested_version_or_alias() {
|
||||||
local versionOrAlias="$1"
|
local versionOrAlias="$1"
|
||||||
|
local runtime="$2"
|
||||||
|
local arch="$3"
|
||||||
local runtimeBin=$(__dnvm_locate_runtime_bin_from_full_name "$versionOrAlias")
|
local runtimeBin=$(__dnvm_locate_runtime_bin_from_full_name "$versionOrAlias")
|
||||||
|
|
||||||
# If the name specified is an existing package, just use it as is
|
# If the name specified is an existing package, just use it as is
|
||||||
if [ -n "$runtimeBin" ]; then
|
if [ -n "$runtimeBin" ]; then
|
||||||
echo "$versionOrAlias"
|
echo "$versionOrAlias"
|
||||||
else
|
else
|
||||||
if [ -e "$_DNVM_ALIAS_DIR/$versionOrAlias.alias" ]; then
|
if [ -e "$_DNVM_ALIAS_DIR/$versionOrAlias.alias" ]; then
|
||||||
local runtimeFullName=$(cat "$_DNVM_ALIAS_DIR/$versionOrAlias.alias")
|
local runtimeFullName=$(cat "$_DNVM_ALIAS_DIR/$versionOrAlias.alias")
|
||||||
local pkgName=$(echo $runtimeFullName | sed "s/\([^.]*\).*/\1/")
|
echo "$runtimeFullName"
|
||||||
local pkgVersion=$(echo $runtimeFullName | sed "s/[^.]*.\(.*\)/\1/")
|
|
||||||
local pkgPlatform=$(echo "$pkgName" | sed "s/$_DNVM_RUNTIME_PACKAGE_NAME-\([^.-]*\).*/\1/")
|
|
||||||
else
|
else
|
||||||
local pkgVersion=$versionOrAlias
|
local pkgVersion=$versionOrAlias
|
||||||
local pkgPlatform="mono"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "$_DNVM_RUNTIME_PACKAGE_NAME-$pkgPlatform.$pkgVersion"
|
if [[ -z $runtime || "$runtime" == "mono" ]]; then
|
||||||
|
echo "$_DNVM_RUNTIME_PACKAGE_NAME-mono.$pkgVersion"
|
||||||
|
elif [[ "$runtime" == "coreclr" ]]; then
|
||||||
|
local pkgArchitecture="x64"
|
||||||
|
local pkgSystem=$(__dnvm_current_os)
|
||||||
|
|
||||||
|
if [ "$arch" != "" ]; then
|
||||||
|
local pkgArchitecture="$arch"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$_DNVM_RUNTIME_PACKAGE_NAME-coreclr-$pkgSystem-$pkgArchitecture.$pkgVersion"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -239,10 +267,12 @@ __dnvm_help() {
|
||||||
echo ""
|
echo ""
|
||||||
echo " adds $_DNVM_RUNTIME_SHORT_NAME bin to path of current command line"
|
echo " adds $_DNVM_RUNTIME_SHORT_NAME bin to path of current command line"
|
||||||
echo ""
|
echo ""
|
||||||
printf "%b\n" "${Yel}$_DNVM_COMMAND_NAME use <semver>|<alias>|<package>|none [-p -persistent] ${RCol}"
|
printf "%b\n" "${Yel}$_DNVM_COMMAND_NAME use <semver>|<alias>|<package>|none [-p|-persistent] [-r|-runtime <runtime>] [-a|-arch <architecture>] ${RCol}"
|
||||||
echo " <semver>|<alias>|<package> add $_DNVM_RUNTIME_SHORT_NAME bin to path of current command line "
|
echo " <semver>|<alias>|<package> add $_DNVM_RUNTIME_SHORT_NAME bin to path of current command line "
|
||||||
echo " none remove $_DNVM_RUNTIME_SHORT_NAME bin from path of current command line"
|
echo " none remove $_DNVM_RUNTIME_SHORT_NAME bin from path of current command line"
|
||||||
echo " -p|-persistent set selected version as default"
|
echo " -p|-persistent set selected version as default"
|
||||||
|
echo " -r|-runtime runtime to use (mono, coreclr)"
|
||||||
|
echo " -a|-arch architecture to use (x64)"
|
||||||
echo ""
|
echo ""
|
||||||
printf "%b\n" "${Yel}$_DNVM_COMMAND_NAME run <semver>|<alias> <args...> ${RCol}"
|
printf "%b\n" "${Yel}$_DNVM_COMMAND_NAME run <semver>|<alias> <args...> ${RCol}"
|
||||||
echo " <semver>|<alias> the version or alias to run"
|
echo " <semver>|<alias> the version or alias to run"
|
||||||
|
|
@ -363,18 +393,30 @@ dnvm()
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"use"|"run"|"exec" )
|
"use"|"run"|"exec" )
|
||||||
[[ $1 == "use" && $# -gt 3 ]] && __dnvm_help && return
|
|
||||||
[[ $1 == "use" && $# -lt 2 ]] && __dnvm_help && return
|
[[ $1 == "use" && $# -lt 2 ]] && __dnvm_help && return
|
||||||
|
|
||||||
local cmd=$1
|
local cmd=$1
|
||||||
local persistent=
|
local persistent=
|
||||||
|
local arch=
|
||||||
|
local runtime=
|
||||||
|
|
||||||
shift
|
shift
|
||||||
if [ $cmd == "use" ]; then
|
if [ $cmd == "use" ]; then
|
||||||
|
local versionOrAlias=
|
||||||
while [ $# -ne 0 ]
|
while [ $# -ne 0 ]
|
||||||
do
|
do
|
||||||
if [[ $1 == "-p" || $1 == "-persistent" ]]; then
|
if [[ $1 == "-p" || $1 == "-persistent" ]]; then
|
||||||
local persistent="true"
|
local persistent="true"
|
||||||
|
elif [[ $1 == "-a" || $1 == "-arch" ]]; then
|
||||||
|
local arch=$2
|
||||||
|
shift
|
||||||
|
elif [[ $1 == "-r" || $1 == "-runtime" ]]; then
|
||||||
|
local runtime=$2
|
||||||
|
shift
|
||||||
|
elif [[ $1 == -* ]]; then
|
||||||
|
echo "Invalid option $1" && __dnvm_help && return 1
|
||||||
elif [[ -n $1 ]]; then
|
elif [[ -n $1 ]]; then
|
||||||
|
[[ -n $versionOrAlias ]] && echo "Invalid option $1" && __dnvm_help && return 1
|
||||||
local versionOrAlias=$1
|
local versionOrAlias=$1
|
||||||
fi
|
fi
|
||||||
shift
|
shift
|
||||||
|
|
@ -396,7 +438,7 @@ dnvm()
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local runtimeFullName=$(__dnvm_requested_version_or_alias "$versionOrAlias")
|
local runtimeFullName=$(__dnvm_requested_version_or_alias "$versionOrAlias" "$runtime" "$arch")
|
||||||
local runtimeBin=$(__dnvm_locate_runtime_bin_from_full_name "$runtimeFullName")
|
local runtimeBin=$(__dnvm_locate_runtime_bin_from_full_name "$runtimeFullName")
|
||||||
|
|
||||||
if [[ -z $runtimeBin ]]; then
|
if [[ -z $runtimeBin ]]; then
|
||||||
|
|
@ -441,7 +483,7 @@ dnvm()
|
||||||
|
|
||||||
if [[ $# == 1 ]]; then
|
if [[ $# == 1 ]]; then
|
||||||
echo ""
|
echo ""
|
||||||
local format="%-20s %s\n"
|
local format="%-25s %s\n"
|
||||||
printf "$format" "Alias" "Name"
|
printf "$format" "Alias" "Name"
|
||||||
printf "$format" "-----" "----"
|
printf "$format" "-----" "----"
|
||||||
if [ -d "$_DNVM_ALIAS_DIR" ]; then
|
if [ -d "$_DNVM_ALIAS_DIR" ]; then
|
||||||
|
|
@ -511,29 +553,29 @@ dnvm()
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local formatString="%-6s %-20s %-7s %-20s %s\n"
|
local formatString="%-6s %-20s %-7s %-4s %-20s %s\n"
|
||||||
printf "$formatString" "Active" "Version" "Runtime" "Location" "Alias"
|
printf "$formatString" "Active" "Version" "Runtime" "Arch" "Location" "Alias"
|
||||||
printf "$formatString" "------" "-------" "-------" "--------" "-----"
|
printf "$formatString" "------" "-------" "-------" "----" "--------" "-----"
|
||||||
|
|
||||||
local formattedHome=`(echo $_DNVM_USER_PACKAGES | sed s=$HOME=~=g)`
|
local formattedHome=`(echo $_DNVM_USER_PACKAGES | sed s=$HOME=~=g)`
|
||||||
for f in $(find $_DNVM_USER_PACKAGES -name "$searchGlob" \( -type d -or -type l \) -prune -exec basename {} \;); do
|
for f in $(find $_DNVM_USER_PACKAGES -name "$searchGlob" \( -type d -or -type l \) -prune -exec basename {} \;); do
|
||||||
local active=""
|
local active=""
|
||||||
[[ $PATH == *"$_DNVM_USER_PACKAGES/$f/bin"* ]] && local active=" *"
|
[[ $PATH == *"$_DNVM_USER_PACKAGES/$f/bin"* ]] && local active=" *"
|
||||||
local pkgName=$(__dnvm_package_runtime "$f")
|
local pkgRuntime=$(__dnvm_package_runtime "$f")
|
||||||
|
local pkgName=$(__dnvm_package_name "$f")
|
||||||
local pkgVersion=$(__dnvm_package_version "$f")
|
local pkgVersion=$(__dnvm_package_version "$f")
|
||||||
|
local pkgArch=$(__dnvm_package_arch "$f")
|
||||||
|
|
||||||
local alias=""
|
local alias=""
|
||||||
local delim=""
|
local delim=""
|
||||||
for i in "${arr[@]}"; do
|
for i in "${arr[@]}"; do
|
||||||
temp="$_DNVM_RUNTIME_PACKAGE_NAME-$pkgName.$pkgVersion"
|
if [[ ${i#*/} == "$pkgName.$pkgVersion" ]]; then
|
||||||
temp2="$_DNVM_RUNTIME_PACKAGE_NAME-$pkgName-x86.$pkgVersion"
|
|
||||||
if [[ ${i#*/} == $temp || ${i#*/} == $temp2 ]]; then
|
|
||||||
alias+="$delim${i%/*}"
|
alias+="$delim${i%/*}"
|
||||||
delim=", "
|
delim=", "
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
printf "$formatString" "$active" "$pkgVersion" "$pkgName" "$formattedHome" "$alias"
|
printf "$formatString" "$active" "$pkgVersion" "$pkgRuntime" "$pkgArch" "$formattedHome" "$alias"
|
||||||
[[ $# == 2 ]] && echo "" && return 0
|
[[ $# == 2 ]] && echo "" && return 0
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue