2
2
# Source this file from your .bash-profile or script to use
3
3
4
4
# "Constants"
5
- _DNVM_BUILDNUMBER=" beta8-15518 "
5
+ _DNVM_BUILDNUMBER=" beta8-15519 "
6
6
_DNVM_AUTHORS=" Microsoft Open Technologies, Inc."
7
7
_DNVM_RUNTIME_PACKAGE_NAME=" dnx"
8
8
_DNVM_RUNTIME_FRIENDLY_NAME=" .NET Execution Environment"
@@ -220,10 +220,11 @@ __dnvm_update_self() {
220
220
221
221
__dnvm_promptSudo () {
222
222
local acceptSudo=" $1 "
223
+ local sudoMsg=" $2 "
223
224
224
225
local answer=
225
226
if [ " $acceptSudo " == " 0" ]; then
226
- echo " In order to install dnx globally, dnvm will have to temporarily run as root. "
227
+ echo $2
227
228
read -p " You may be prompted for your password via 'sudo' during this process. Is this Ok? (y/N) " answer
228
229
else
229
230
answer=" y"
@@ -264,7 +265,7 @@ __dnvm_download() {
264
265
local useSudo=
265
266
mkdir -p " $runtimeFolder " > /dev/null 2>&1
266
267
if [ ! -d $runtimeFolder ]; then
267
- if ! __dnvm_promptSudo $acceptSudo ; then
268
+ if ! __dnvm_promptSudo $acceptSudo " In order to install dnx globally, dnvm will have to temporarily run as root. " ; then
268
269
useSudo=sudo
269
270
sudo mkdir -p " $runtimeFolder " > /dev/null 2>&1 || return 1
270
271
else
@@ -439,6 +440,13 @@ __dnvm_help() {
439
440
echo " "
440
441
echo " adds $_DNVM_RUNTIME_SHORT_NAME bin to path of current command line"
441
442
echo " "
443
+ printf " %b\n" " ${Yel} $_DNVM_COMMAND_NAME uninstall <semver> [-r|-runtime <runtime>] [-a|-arch <architecture>] [-OS <OS>]${RCol} "
444
+ echo " <semver> the version to uninstall"
445
+ echo " -r|-runtime runtime to use (mono, coreclr)"
446
+ echo " -a|-arch architecture to use (x64)"
447
+ echo " -OS the operating system that the runtime targets (default:$( __dnvm_current_os) "
448
+ echo " -y Assume Yes to all queries and do not prompt"
449
+ echo " "
442
450
printf " %b\n" " ${Yel} $_DNVM_COMMAND_NAME use <semver>|<alias>|<package>|none [-p|-persistent] [-r|-runtime <runtime>] [-a|-arch <architecture>] ${RCol} "
443
451
echo " <semver>|<alias>|<package> add $_DNVM_RUNTIME_SHORT_NAME bin to path of current command line "
444
452
echo " none remove $_DNVM_RUNTIME_SHORT_NAME bin from path of current command line"
@@ -660,7 +668,7 @@ dnvm()
660
668
local useSudo=
661
669
mkdir -p " $runtimeFolder " > /dev/null 2>&1
662
670
if [ ! -d $runtimeFolder ]; then
663
- if ! __dnvm_promptSudo $acceptSudo ; then
671
+ if ! __dnvm_promptSudo $acceptSudo " In order to install dnx globally, dnvm will have to temporarily run as root. " ; then
664
672
useSudo=sudo
665
673
sudo mkdir -p " $runtimeFolder " > /dev/null 2>&1 || return 1
666
674
else
@@ -676,6 +684,79 @@ dnvm()
676
684
fi
677
685
;;
678
686
687
+ " uninstall" )
688
+ [[ $# -lt 2 ]] && __dnvm_help && return
689
+ shift
690
+
691
+ local versionOrAlias=
692
+ local runtime=
693
+ local architecture=
694
+ local os=
695
+ local acceptSudo=0
696
+ while [ $# -ne 0 ]
697
+ do
698
+ if [[ $1 == " -r" || $1 == " -runtime" ]]; then
699
+ local runtime=$2
700
+ shift
701
+ elif [[ $1 == " -a" || $1 == " -arch" ]]; then
702
+ local architecture=$2
703
+ shift
704
+ elif [[ $1 == " -OS" ]]; then
705
+ local os=$2
706
+ shift
707
+ elif [[ $1 == " -y" ]]; then
708
+ local acceptSudo=1
709
+ elif [[ -n $1 ]]; then
710
+ local versionOrAlias=$1
711
+ fi
712
+
713
+ shift
714
+ done
715
+
716
+ if [[ -z $os ]]; then
717
+ os=$( __dnvm_current_os)
718
+ elif [[ $os == " osx" ]]; then
719
+ os=" darwin"
720
+ fi
721
+
722
+ if [[ -z $runtime ]]; then
723
+ runtime=$( __dnvm_os_runtime_defaults " $os " )
724
+ fi
725
+
726
+ if [[ -z $architecture ]]; then
727
+ architecture=$( __dnvm_runtime_bitness_defaults " $runtime " )
728
+ fi
729
+
730
+ # dnx-coreclr-linux-x64.1.0.0-beta7-12290
731
+ local runtimeFullName=$( __dnvm_requested_version_or_alias " $versionOrAlias " " $runtime " " $architecture " " $os " )
732
+
733
+ for folder in ` echo $DNX_HOME | tr " :" " \n" ` ; do
734
+ if [ -e " $folder /runtimes/$runtimeFullName " ]; then
735
+ local runtimeFolder=" $folder /runtimes/$runtimeFullName "
736
+ fi
737
+ done
738
+
739
+ if [[ -e $runtimeFolder ]]; then
740
+ if [[ $runtimeFolder == * " $DNX_GLOBAL_HOME " * ]] ; then
741
+ if ! __dnvm_promptSudo $acceptSudo " In order to uninstall a global dnx, dnvm will have to temporarily run as root." ; then
742
+ local useSudo=sudo
743
+ fi
744
+ fi
745
+ $useSudo rm -r $runtimeFolder
746
+ echo " Removed $runtimeFolder "
747
+ else
748
+ echo " $runtimeFolder is not installed"
749
+ fi
750
+
751
+ if [ -d " $_DNVM_ALIAS_DIR " ]; then
752
+ for __dnvm_file in $( find " $_DNVM_ALIAS_DIR " -name * .alias) ; do
753
+ if [ $( cat $__dnvm_file ) == " $runtimeFullName " ]; then
754
+ rm $__dnvm_file
755
+ fi
756
+ done
757
+ fi
758
+ ;;
759
+
679
760
" use" |" run" |" exec" )
680
761
[[ $1 == " use" && $# -lt 2 ]] && __dnvm_help && return
681
762
@@ -871,7 +952,6 @@ dnvm()
871
952
872
953
# Z shell array-index starts at one.
873
954
local i=1
874
- local format=" %-20s %s\n"
875
955
if [ -d " $_DNVM_ALIAS_DIR " ]; then
876
956
for __dnvm_file in $( find " $_DNVM_ALIAS_DIR " -name * .alias) ; do
877
957
if [ ! -d " $_DNVM_USER_PACKAGES /$( cat $__dnvm_file ) " ] && [ ! -d " $_DNVM_GLOBAL_PACKAGES /$( cat $__dnvm_file ) " ]; then
0 commit comments