Skip to content

Commit b3bd761

Browse files
ASP.NET Push Botunknown
authored andcommitted
⬆️ dnvm.ps1, dnvm.cmd, dnvm.sh
Source: aspnet/dnvm@9f8284a
1 parent 31c7588 commit b3bd761

File tree

2 files changed

+64
-22
lines changed

2 files changed

+64
-22
lines changed

dnvm.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ function _WriteOut {
6767

6868
### Constants
6969
$ProductVersion="1.0.0"
70-
$BuildVersion="beta5-10359"
70+
$BuildVersion="beta5-10360"
7171
$Authors="Microsoft Open Technologies, Inc."
7272

7373
# If the Version hasn't been replaced...

dnvm.sh

Lines changed: 63 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Source this file from your .bash-profile or script to use
33

44
# "Constants"
5-
_DNVM_BUILDNUMBER="beta5-10359"
5+
_DNVM_BUILDNUMBER="beta5-10360"
66
_DNVM_AUTHORS="Microsoft Open Technologies, Inc."
77
_DNVM_RUNTIME_PACKAGE_NAME="dnx"
88
_DNVM_RUNTIME_FRIENDLY_NAME=".NET Execution Environment"
@@ -54,6 +54,16 @@ if [ -z "$DNX_FEED" ]; then
5454
DNX_FEED="$_DNVM_DEFAULT_FEED"
5555
fi
5656

57+
__dnvm_current_os()
58+
{
59+
local uname=$(uname)
60+
if [[ $uname == "Darwin" ]]; then
61+
echo "darwin"
62+
else
63+
echo "linux"
64+
fi
65+
}
66+
5767
__dnvm_find_latest() {
5868
local platform="mono"
5969

@@ -96,6 +106,14 @@ __dnvm_package_runtime() {
96106
echo "$runtimeFullName" | sed "s/$_DNVM_RUNTIME_PACKAGE_NAME-\([^.-]*\).*/\1/"
97107
}
98108

109+
__dnvm_package_arch() {
110+
local runtimeFullName="$1"
111+
if [[ "$runtimeFullName" =~ $_DNVM_RUNTIME_PACKAGE_NAME-[^-.]*-[^-.]*-[^-.]*\..* ]];
112+
then
113+
echo "$runtimeFullName" | sed "s/$_DNVM_RUNTIME_PACKAGE_NAME-[^-.]*-[^-.]*-\([^-.]*\)\..*/\1/"
114+
fi
115+
}
116+
99117
__dnvm_update_self() {
100118
local dnvmFileLocation="$_DNVM_DNVM_DIR/dnvm.sh"
101119
if [ ! -e $dnvmFileLocation ]; then
@@ -180,23 +198,33 @@ __dnvm_unpack() {
180198

181199
__dnvm_requested_version_or_alias() {
182200
local versionOrAlias="$1"
201+
local runtime="$2"
202+
local arch="$3"
183203
local runtimeBin=$(__dnvm_locate_runtime_bin_from_full_name "$versionOrAlias")
184204

185205
# If the name specified is an existing package, just use it as is
186206
if [ -n "$runtimeBin" ]; then
187207
echo "$versionOrAlias"
188208
else
189-
if [ -e "$_DNVM_ALIAS_DIR/$versionOrAlias.alias" ]; then
190-
local runtimeFullName=$(cat "$_DNVM_ALIAS_DIR/$versionOrAlias.alias")
191-
local pkgName=$(echo $runtimeFullName | sed "s/\([^.]*\).*/\1/")
192-
local pkgVersion=$(echo $runtimeFullName | sed "s/[^.]*.\(.*\)/\1/")
193-
local pkgPlatform=$(echo "$pkgName" | sed "s/$_DNVM_RUNTIME_PACKAGE_NAME-\([^.-]*\).*/\1/")
209+
if [ -e "$_DNVM_ALIAS_DIR/$versionOrAlias.alias" ]; then
210+
local runtimeFullName=$(cat "$_DNVM_ALIAS_DIR/$versionOrAlias.alias")
211+
echo "$runtimeFullName"
194212
else
195213
local pkgVersion=$versionOrAlias
196-
local pkgPlatform="mono"
197-
fi
198214

199-
echo "$_DNVM_RUNTIME_PACKAGE_NAME-$pkgPlatform.$pkgVersion"
215+
if [[ -z $runtime || "$runtime" == "mono" ]]; then
216+
echo "$_DNVM_RUNTIME_PACKAGE_NAME-mono.$pkgVersion"
217+
elif [[ "$runtime" == "coreclr" ]]; then
218+
local pkgArchitecture="x64"
219+
local pkgSystem=$(__dnvm_current_os)
220+
221+
if [ "$arch" != "" ]; then
222+
local pkgArchitecture="$arch"
223+
fi
224+
225+
echo "$_DNVM_RUNTIME_PACKAGE_NAME-coreclr-$pkgSystem-$pkgArchitecture.$pkgVersion"
226+
fi
227+
fi
200228
fi
201229
}
202230

@@ -239,10 +267,12 @@ __dnvm_help() {
239267
echo ""
240268
echo " adds $_DNVM_RUNTIME_SHORT_NAME bin to path of current command line"
241269
echo ""
242-
printf "%b\n" "${Yel}$_DNVM_COMMAND_NAME use <semver>|<alias>|<package>|none [-p -persistent] ${RCol}"
270+
printf "%b\n" "${Yel}$_DNVM_COMMAND_NAME use <semver>|<alias>|<package>|none [-p|-persistent] [-r|-runtime <runtime>] [-a|-arch <architecture>] ${RCol}"
243271
echo " <semver>|<alias>|<package> add $_DNVM_RUNTIME_SHORT_NAME bin to path of current command line "
244272
echo " none remove $_DNVM_RUNTIME_SHORT_NAME bin from path of current command line"
245273
echo " -p|-persistent set selected version as default"
274+
echo " -r|-runtime runtime to use (mono, coreclr)"
275+
echo " -a|-arch architecture to use (x64)"
246276
echo ""
247277
printf "%b\n" "${Yel}$_DNVM_COMMAND_NAME run <semver>|<alias> <args...> ${RCol}"
248278
echo " <semver>|<alias> the version or alias to run"
@@ -363,18 +393,30 @@ dnvm()
363393
;;
364394

365395
"use"|"run"|"exec" )
366-
[[ $1 == "use" && $# -gt 3 ]] && __dnvm_help && return
367396
[[ $1 == "use" && $# -lt 2 ]] && __dnvm_help && return
397+
368398
local cmd=$1
369399
local persistent=
400+
local arch=
401+
local runtime=
370402

371403
shift
372404
if [ $cmd == "use" ]; then
405+
local versionOrAlias=
373406
while [ $# -ne 0 ]
374407
do
375408
if [[ $1 == "-p" || $1 == "-persistent" ]]; then
376409
local persistent="true"
410+
elif [[ $1 == "-a" || $1 == "-arch" ]]; then
411+
local arch=$2
412+
shift
413+
elif [[ $1 == "-r" || $1 == "-runtime" ]]; then
414+
local runtime=$2
415+
shift
416+
elif [[ $1 == -* ]]; then
417+
echo "Invalid option $1" && __dnvm_help && return 1
377418
elif [[ -n $1 ]]; then
419+
[[ -n $versionOrAlias ]] && echo "Invalid option $1" && __dnvm_help && return 1
378420
local versionOrAlias=$1
379421
fi
380422
shift
@@ -396,7 +438,7 @@ dnvm()
396438
return 0
397439
fi
398440

399-
local runtimeFullName=$(__dnvm_requested_version_or_alias "$versionOrAlias")
441+
local runtimeFullName=$(__dnvm_requested_version_or_alias "$versionOrAlias" "$runtime" "$arch")
400442
local runtimeBin=$(__dnvm_locate_runtime_bin_from_full_name "$runtimeFullName")
401443

402444
if [[ -z $runtimeBin ]]; then
@@ -441,7 +483,7 @@ dnvm()
441483

442484
if [[ $# == 1 ]]; then
443485
echo ""
444-
local format="%-20s %s\n"
486+
local format="%-25s %s\n"
445487
printf "$format" "Alias" "Name"
446488
printf "$format" "-----" "----"
447489
if [ -d "$_DNVM_ALIAS_DIR" ]; then
@@ -511,29 +553,29 @@ dnvm()
511553
done
512554
fi
513555

514-
local formatString="%-6s %-20s %-7s %-20s %s\n"
515-
printf "$formatString" "Active" "Version" "Runtime" "Location" "Alias"
516-
printf "$formatString" "------" "-------" "-------" "--------" "-----"
556+
local formatString="%-6s %-20s %-7s %-4s %-20s %s\n"
557+
printf "$formatString" "Active" "Version" "Runtime" "Arch" "Location" "Alias"
558+
printf "$formatString" "------" "-------" "-------" "----" "--------" "-----"
517559

518560
local formattedHome=`(echo $_DNVM_USER_PACKAGES | sed s=$HOME=~=g)`
519561
for f in $(find $_DNVM_USER_PACKAGES -name "$searchGlob" \( -type d -or -type l \) -prune -exec basename {} \;); do
520562
local active=""
521563
[[ $PATH == *"$_DNVM_USER_PACKAGES/$f/bin"* ]] && local active=" *"
522-
local pkgName=$(__dnvm_package_runtime "$f")
564+
local pkgRuntime=$(__dnvm_package_runtime "$f")
565+
local pkgName=$(__dnvm_package_name "$f")
523566
local pkgVersion=$(__dnvm_package_version "$f")
567+
local pkgArch=$(__dnvm_package_arch "$f")
524568

525569
local alias=""
526570
local delim=""
527571
for i in "${arr[@]}"; do
528-
temp="$_DNVM_RUNTIME_PACKAGE_NAME-$pkgName.$pkgVersion"
529-
temp2="$_DNVM_RUNTIME_PACKAGE_NAME-$pkgName-x86.$pkgVersion"
530-
if [[ ${i#*/} == $temp || ${i#*/} == $temp2 ]]; then
572+
if [[ ${i#*/} == "$pkgName.$pkgVersion" ]]; then
531573
alias+="$delim${i%/*}"
532574
delim=", "
533575
fi
534576
done
535577

536-
printf "$formatString" "$active" "$pkgVersion" "$pkgName" "$formattedHome" "$alias"
578+
printf "$formatString" "$active" "$pkgVersion" "$pkgRuntime" "$pkgArch" "$formattedHome" "$alias"
537579
[[ $# == 2 ]] && echo "" && return 0
538580
done
539581

0 commit comments

Comments
 (0)