Fixed kvm.sh to work on zsh

This commit is contained in:
Graeme Christie 2014-05-28 00:47:17 +08:00
parent feadd7c96b
commit 0ac3d020f4
1 changed files with 18 additions and 13 deletions

31
kvm.sh
View File

@ -64,8 +64,9 @@ _kvm_find_latest() {
fi fi
local url="$KRE_NUGET_API_URL/GetUpdates()?packageIds=%27KRE-$platform-$architecture%27&versions=%270.0%27&includePrerelease=true&includeAllVersions=false" local url="$KRE_NUGET_API_URL/GetUpdates()?packageIds=%27KRE-$platform-$architecture%27&versions=%270.0%27&includePrerelease=true&includeAllVersions=false"
local xml=$(curl -silent -L -u aspnetreadonly:4d8a2d9c-7b80-4162-9978-47e918c9658c $url) local cmd=
version=$(echo $xml | sed "s/.*<[a-zA-Z]:Version>\([^<]*\).*/\1/") local xml="$(curl $url 2>/dev/null)"
version="$(echo $xml | sed 's/.*<[a-zA-Z]:Version>\([^<]*\).*/\1/')"
[[ $xml == $version ]] && return 1 [[ $xml == $version ]] && return 1
echo $version echo $version
} }
@ -142,7 +143,7 @@ _kvm_unpack() {
_kvm_requested_platform() { _kvm_requested_platform() {
local default=$1 local default=$1
[[ $KRE_MONO45 ]] && echo "mono45" && return [[ -z $KRE_MONO45 ]] && echo "mono45" && return
echo $default echo $default
} }
@ -151,11 +152,11 @@ _kvm_requested_platform() {
_kvm_requested_architecture() { _kvm_requested_architecture() {
local default=$1 local default=$1
[[ $KRE_X86 && $KRE_X64 ]] && echo "This command cannot accept both -x86 and -x64" && return 1 [[ -n $KRE_X86 && -n $KRE_X64 ]] && echo "This command cannot accept both -x86 and -x64" && return 1
[[ $KRE_X86 ]] && echo "x86" && return [[ -z $KRE_X86 ]] && echo "x86" && return
[[ $KRE_X64 ]] && echo "x64" && return [[ -z $KRE_X64 ]] && echo "x64" && return
echo $default echo $default
} }
@ -287,7 +288,7 @@ kvm()
# Strip other version from PATH # Strip other version from PATH
PATH=`_kvm_strip_path "$PATH" "/bin"` PATH=`_kvm_strip_path "$PATH" "/bin"`
if [[ $persistent&& -e "$KRE_USER_HOME/alias/default.alias" ]]; then if [[ -n $persistent && -e "$KRE_USER_HOME/alias/default.alias" ]]; then
echo "Setting default KRE to none" echo "Setting default KRE to none"
rm "$KRE_USER_HOME/alias/default.alias" rm "$KRE_USER_HOME/alias/default.alias"
@ -298,7 +299,7 @@ kvm()
local kreFullName=$(_kvm_requested_version_or_alias "$versionOrAlias") local kreFullName=$(_kvm_requested_version_or_alias "$versionOrAlias")
local kreBin=$(_kvm_locate_kre_bin_from_full_name "$kreFullName") local kreBin=$(_kvm_locate_kre_bin_from_full_name "$kreFullName")
if [[ ! $kreBin ]]; then if [[ -z $kreBin ]]; then
echo "Cannot find $kreFullName, do you need to run 'kvm install $versionOrAlias'?" echo "Cannot find $kreFullName, do you need to run 'kvm install $versionOrAlias'?"
return 1 return 1
fi fi
@ -308,14 +309,14 @@ kvm()
PATH=`_kvm_strip_path "$PATH" "/bin"` PATH=`_kvm_strip_path "$PATH" "/bin"`
PATH=`_kvm_prepend_path "$PATH" "$kreBin"` PATH=`_kvm_prepend_path "$PATH" "$kreBin"`
if [[ $persistent ]]; then if [[ -n $persistent ]]; then
echo "Setting $kreBin as default KRE" echo "Setting $kreBin as default KRE"
kvm alias default "$versionOrAlias" kvm alias default "$versionOrAlias"
fi fi
;; ;;
"alias" ) "alias" )
[ $# -gt 3 ] && kvm help && return [[ $# -gt 3 ]] && kvm help && return
if [[ $# == 1 ]]; then if [[ $# == 1 ]]; then
for f in $(find "$KRE_USER_HOME/alias" -name *.alias); do printf "%-20s %s\n" "$(basename $f | sed 's/.alias//')" "$(cat $f)"; done for f in $(find "$KRE_USER_HOME/alias" -name *.alias); do printf "%-20s %s\n" "$(basename $f | sed 's/.alias//')" "$(cat $f)"; done
@ -342,9 +343,9 @@ kvm()
;; ;;
"list" ) "list" )
[ $# -gt 2 ] && kvm help && return [[ $# -gt 2 ]] && kvm help && return
[ ! -d $KRE_USER_PACKAGES ] && echo "KRE is not installed." && return 1 [[ ! -d $KRE_USER_PACKAGES ]] && echo "KRE is not installed." && return 1
local searchGlob="KRE-*" local searchGlob="KRE-*"
if [ $# == 2 ]; then if [ $# == 2 ]; then
@ -353,7 +354,6 @@ kvm()
echo $searchGlob echo $searchGlob
fi fi
for f in $(find $KRE_USER_PACKAGES/* -name $searchGlob -type d -prune -exec basename {} \;); do for f in $(find $KRE_USER_PACKAGES/* -name $searchGlob -type d -prune -exec basename {} \;); do
#TODO: Format, extract package, version arch etc #TODO: Format, extract package, version arch etc
echo -n $f echo -n $f
@ -367,6 +367,11 @@ kvm()
echo "" echo ""
[[ $# == 2 ]] && return 1 # kvm list xxx - xxx was not found [[ $# == 2 ]] && return 1 # kvm list xxx - xxx was not found
;;
*)
echo "Unknown command $1"
return 1
esac esac
} }