Only the first if statement (3 lines) includes the change.
The other changes to the file only make the indentation consistent.

Signed-off-by: Rok Strnisa <[email protected]>


 ocaml/xe-cli/bash-completion |  309 +++++++++++++++++++++---------------------
 1 files changed, 156 insertions(+), 153 deletions(-)


# HG changeset patch
# User Rok Strnisa <[email protected]>
# Date 1282921738 -3600
# Node ID ca1d85b0de077cbc65931dc0d07d667849683b6a
# Parent  5ecd75cb2fd0da474efa2f48e187d0d5976c1a8f
CA-28853: CLI command returns an error on pressing Tab key --- FIXED.

Only the first if statement (3 lines) includes the change.
The other changes to the file only make the indentation consistent.

Signed-off-by: Rok Strnisa <[email protected]>

diff --git a/ocaml/xe-cli/bash-completion b/ocaml/xe-cli/bash-completion
--- a/ocaml/xe-cli/bash-completion
+++ b/ocaml/xe-cli/bash-completion
@@ -10,15 +10,19 @@ _xe()
 
 	local cur prev opts xe IFS
 	COMPREPLY=()
+	# The following if statement is a fix for CA-28853. "cur=`_get_cword`" is used in newer scripts, but it somehow does not work.
+	if [[ $COMP_CWORD < 1 ]] ; then
+			COMP_CWORD=$(( ${#comp_wor...@]} + 1))
+	fi
 	cur="${COMP_WORDS[COMP_CWORD]}"
 	prev="${COMP_WORDS[COMP_CWORD-1]}"
 	xe=xe
-	
+
 	if [[ $COMP_CWORD == 1 ]] ; then
 	        opts=`${xe} help --minimal --all 2>/dev/null | sed -e 's/,/\ ,/g' -e 's/$/\ /g'` && COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
 		return 0
 	fi
-	
+
 # parameters are passed as param=value
 
 	if echo ${COMP_WORDS[COMP_CWORD]} | grep "=" > /dev/null; then
@@ -28,7 +32,7 @@ _xe()
 		value=`echo ${COMP_WORDS[COMP_CWORD]} | cut -d= -f2`
 
 		local vms args
-		
+
 		case "$param" in
 			filename|file-name|license-file)
 				IFS=$'\n,'
@@ -44,38 +48,38 @@ _xe()
 				return 0
 				;;
 
-		        uuid)   
+			uuid)
 				case "${COMP_WORDS[1]}" in
 					diagnostic-vm-status) cmd=vm-list;;
 					diagnostic-vdi-status) cmd=vdi-list;;
 					*) cmd=`echo ${COMP_WORDS[1]} | awk -F- '/^host-cpu-/ || /^host-crashdump-/ { print $1 "-" $2 }
$0 !~ /^host-cpu-/ && $0 !~ /^host-crashdump-/ { print $1 }'`-list;;
 				esac
-                                IFS=$'\n,'
+				IFS=$'\n,'
 				COMPREPLY=( $(compgen_names "$cmd" uuid "$value") )
 				return 1
 				;;
 			vm)
-                                IFS=$'\n,'
-                                COMPREPLY=( $(compgen_names vm-list name-label "$value") )
+				IFS=$'\n,'
+				COMPREPLY=( $(compgen_names vm-list name-label "$value") )
 				return 0
 				;;
 
 			host)
-                                IFS=$'\n,'
+				IFS=$'\n,'
 				COMPREPLY=( $(compgen_names host-list name-label "$value") )
 				return 0
 				;;
 			params)
-                                val=$(final_comma_separated_param "$value")
+				val=$(final_comma_separated_param "$value")
 				class=`echo ${COMP_WORDS[1]} | cut -d- -f1`
 				params=`${xe} ${class}-list params=all 2>/dev/null| cut -d: -f1 | sed -e s/\(.*\)//g -e s/^\ *//g -e s/\ *$//g`
-                                IFS=$'\n,'
+				IFS=$'\n,'
 				COMPREPLY=( $(compgen -W "$params,all" -- "$val" ) )
 				return 0
 				;;
 			template)
-                                IFS=$'\n,'
-                                COMPREPLY=( $(compgen_names template-list name-label "$value") )
+				IFS=$'\n,'
+				COMPREPLY=( $(compgen_names template-list name-label "$value") )
 				return 0
 				;;
 
@@ -90,144 +94,143 @@ _xe()
 				;;
 			cd-name)
 				if [[ "${COMP_WORDS[1]}" == "vm-cd-add" || "${COMP_WORDS[1]}" == "vm-cd-insert" ]]; then
-                                        IFS=$'\n,'
-                                        COMPREPLY=( $(compgen_names cd-list name-label "$value") )
+					IFS=$'\n,'
+					COMPREPLY=( $(compgen_names cd-list name-label "$value") )
 					return 0
 				elif [[ "${COMP_WORDS[1]}" == "vm-cd-remove" ]]; then
-				        vm=`for i in ${comp_wor...@]:2}; do echo $i | grep "^vm="; done`
+					vm=`for i in ${comp_wor...@]:2}; do echo $i | grep "^vm="; done`
 					local cds=`${xe} vm-cd-list "$vm" --minimal --multiple vbd-params=vdi-name-label vdi-params=none 2>/dev/null | sed -e "s,',$MAGIC_SQUOTE,g" -e "s,\",$MAGIC_DQUOTE,g"`
-                                        IFS=$'\n,'
-                                        COMPREPLY=( $(compgen_escape "$cds" "$value") )
+					IFS=$'\n,'
+					COMPREPLY=( $(compgen_escape "$cds" "$value") )
 					return 0
 				fi
 				;;
-			on)	
-                                IFS=$'\n,'
-                                COMPREPLY=( $(compgen_names host-list name-label "$value") )
+			on)
+				IFS=$'\n,'
+				COMPREPLY=( $(compgen_names host-list name-label "$value") )
 				return 0
 				;;
 			key)
 				local keys=`${xe} log-get-keys --minimal 2>/dev/null`
-                                IFS=$'\n,'
-                                COMPREPLY=( $(compgen_escape "$keys" "$value") )
+				IFS=$'\n,'
+				COMPREPLY=( $(compgen_escape "$keys" "$value") )
 				return 0
 				;;
 			level)
-                                IFS=$'\n,'
+				IFS=$'\n,'
 				COMPREPLY=( $(compgen -W "debug ,info ,warning ,error " -- ${value}) )
 				return 0
 				;;
 			sr-name-label) # for vm-install
-                                IFS=$'\n,'
+				IFS=$'\n,'
 				COMPREPLY=( $(compgen_names sr-list name-label "$value") )
 				return 0
 				;;
 			crash-dump-SR | suspend-image-SR | default-SR)
-                                IFS=$'\n,'
+				IFS=$'\n,'
 				COMPREPLY=( $(compgen_names sr-list uuid "$value") )
 				return 0
 				;;
 			type) # for vbd-create/vdi-create/sr-create/sr-probe
-                                IFS=$'\n,'
-			        fst=`echo ${COMP_WORDS[1]} | cut -d- -f1`
+				IFS=$'\n,'
+				fst=`echo ${COMP_WORDS[1]} | cut -d- -f1`
 
 				if [[ "${fst}" == "vbd" ]]; then
-				   COMPREPLY=( $(compgen -W "Disk ,CD " -- ${value}) )
-				   return 0
+					COMPREPLY=( $(compgen -W "Disk ,CD " -- ${value}) )
+					return 0
 				elif [[ "${fst}" == "vdi" ]]; then
-				   COMPREPLY=( $(compgen -W "system ,user ,suspend ,crashdump " -- ${value}) )
-				   return 0
+					COMPREPLY=( $(compgen -W "system ,user ,suspend ,crashdump " -- ${value}) )
+					return 0
 				elif [[ "${fst}" == "sr" ]]; then
-				   COMPREPLY=( $(compgen -W "$(xe sm-list params=type --minimal 2>/dev/null | sed 's/,/ ,/g') " -- ${value}) )
-				   return 0
+					COMPREPLY=( $(compgen -W "$(xe sm-list params=type --minimal 2>/dev/null | sed 's/,/ ,/g') " -- ${value}) )
+					return 0
 				fi
 				;;
 			entries) # for host-get-system-status
-                                val=$(final_comma_separated_param "$value")
-                                master_uuid=$(xe pool-list params=master --minimal 2>/dev/null)
-                                IFS=$'\n'
-                                caps=$($xe host-get-system-status-capabilities uuid="$master_uuid" 2>/dev/null | grep '<capability ' | sed -ne 's/.*<capability .* key="\([^"]*\)".*$/\1/p' | tr '\n' , | sed -e 's/,$//g' | tr , '\n')
-        # Fake "
-                                COMPREPLY=( $(compgen -W "$caps" -- "$val") )
-                                return 0
-                                ;;
+				val=$(final_comma_separated_param "$value")
+				master_uuid=$(xe pool-list params=master --minimal 2>/dev/null)
+				IFS=$'\n'
+				caps=$($xe host-get-system-status-capabilities uuid="$master_uuid" 2>/dev/null | grep '<capability ' | sed -ne 's/.*<capability .* key="\([^"]*\)".*$/\1/p' | tr '\n' , | sed -e 's/,$//g' | tr , '\n')
+				COMPREPLY=( $(compgen -W "$caps" -- "$val") ) # Fake "
+				return 0
+				;;
 			output)
-                                case "${COMP_WORDS[1]}" in
-                                    log-set-output)
-                                        IFS=$'\n,'
-                                        COMPREPLY=( $(compgen -W "file,syslog,nil " -- ${value}) )
-                                        ;;
-                                    host-get-system-status)
-                                        IFS=$'\n,'
-                                        COMPREPLY=( $(compgen -W "tar.bz2 ,zip " -- ${value}) )
-                                        ;;
-                                esac
-                                return 0
-                                ;;
-            copy-bios-strings-from) # for vm-install
-                COMPREPLY=`${xe} host-list params=uuid --minimal 2>/dev/null`
-                return 0
-                ;;
+				case "${COMP_WORDS[1]}" in
+						log-set-output)
+						IFS=$'\n,'
+						COMPREPLY=( $(compgen -W "file,syslog,nil " -- ${value}) )
+						;;
+						host-get-system-status)
+								IFS=$'\n,'
+								COMPREPLY=( $(compgen -W "tar.bz2 ,zip " -- ${value}) )
+								;;
+				esac
+				return 0
+				;;
+			copy-bios-strings-from) # for vm-install
+				COMPREPLY=`${xe} host-list params=uuid --minimal 2>/dev/null`
+				return 0
+				;;
 			backup-type) # for vmpp
-                                IFS=$'\n,'
+				IFS=$'\n,'
 				COMPREPLY=( $(compgen -W "snapshot,checkpoint" -- ${value}) )
 				return 0
 				;;
-                        backup-frequency) # for vmpp
-                                IFS=$'\n,'
-                                COMPREPLY=( $(compgen -W "hourly,daily,weekly" -- ${value}) )
-                                return 0
-                                ;;
-                        archive-frequency) # for vmpp
-                                IFS=$'\n,'
-                                COMPREPLY=( $(compgen -W "never,always_after_backup,daily,weekly" -- ${value}) )
-                                return 0
-                                ;;
-                        archive-target-type) # for vmpp
-                                IFS=$'\n,'
-                                COMPREPLY=( $(compgen -W "none,cifs,nfs" -- ${value}) )
-                                return 0
-                                ;;
-			backup-schedule:days) # for vmpp 
-                                IFS=$'\n,'
-			        LAST_VALUE=`echo ${value}|gawk 'BEGIN{FS=" "}{print $NF}'`
-                                COMPREPLY=( $(compgen -W "monday,tuesday,wednesday,thursday,friday,saturday,sunday" -- ${LAST_VALUE}) )
-                                return 0
-                                ;;
-                        archive-schedule:days) # for vmpp
-                                IFS=$'\n,'
-			        LAST_VALUE=`echo ${value}|gawk 'BEGIN{FS=" "}{print $NF}'`
-                                COMPREPLY=( $(compgen -W "monday,tuesday,wednesday,thursday,friday,saturday,sunday " -- ${LAST_VALUE}) )
-                                return 0
-                                ;;
-            edition) # for host-apply-edition (licensing)
-                IFS=$'\n,'
-                COMPREPLY=( $(compgen -W "free ,advanced ,enterprise ,platinum ,enterprise-xd " -- ${value}) )
-                return 0
-                ;;
+			backup-frequency) # for vmpp
+				IFS=$'\n,'
+				COMPREPLY=( $(compgen -W "hourly,daily,weekly" -- ${value}) )
+				return 0
+				;;
+			archive-frequency) # for vmpp
+				IFS=$'\n,'
+				COMPREPLY=( $(compgen -W "never,always_after_backup,daily,weekly" -- ${value}) )
+				return 0
+				;;
+			archive-target-type) # for vmpp
+				IFS=$'\n,'
+				COMPREPLY=( $(compgen -W "none,cifs,nfs" -- ${value}) )
+				return 0
+				;;
+			backup-schedule:days) # for vmpp
+				IFS=$'\n,'
+				LAST_VALUE=`echo ${value}|gawk 'BEGIN{FS=" "}{print $NF}'`
+				COMPREPLY=( $(compgen -W "monday,tuesday,wednesday,thursday,friday,saturday,sunday" -- ${LAST_VALUE}) )
+				return 0
+				;;
+			archive-schedule:days) # for vmpp
+				IFS=$'\n,'
+				LAST_VALUE=`echo ${value}|gawk 'BEGIN{FS=" "}{print $NF}'`
+				COMPREPLY=( $(compgen -W "monday,tuesday,wednesday,thursday,friday,saturday,sunday " -- ${LAST_VALUE}) )
+				return 0
+				;;
+			edition) # for host-apply-edition (licensing)
+				IFS=$'\n,'
+				COMPREPLY=( $(compgen -W "free ,advanced ,enterprise ,platinum ,enterprise-xd " -- ${value}) )
+				return 0
+				;;
 			*)
 				snd=`echo ${param} | cut -d- -f2`
 				fst=`echo ${param} | cut -d- -f1`
-				
+
 				if [[ "${snd}" == "uuid" ]]; then
-				   if [[ "${fst}" == "snapshot" ]]; then
-				   	  all=""
-				   else
-					  all="--all"
-				   fi
-				   uuids=`${xe} ${fst}-list ${all} params=uuid --minimal 2>/dev/null`
-                                   IFS=$'\n,'
-                                   COMPREPLY=( $(compgen_escape "$uuids" "$value") )
-				   return 0
+					if [[ "${fst}" == "snapshot" ]]; then
+						all=""
+					else
+						all="--all"
+					fi
+					uuids=`${xe} ${fst}-list ${all} params=uuid --minimal 2>/dev/null`
+					IFS=$'\n,'
+					COMPREPLY=( $(compgen_escape "$uuids" "$value") )
+					return 0
 				else
-				   fst=`echo ${COMP_WORDS[1]} | cut -d- -f1`
-				   snd=`echo ${COMP_WORDS[1]} | cut -d- -f2`
-				   if [[ "${snd}" == "list" || "${fst}" == "vm" ]]; then
-                                     IFS=$'\n,'
-				     COMPREPLY=( $(compgen_names "${fst}-list" "$param" "$value") )
-				     return 0
-				   fi
-				fi	  
+					fst=`echo ${COMP_WORDS[1]} | cut -d- -f1`
+					snd=`echo ${COMP_WORDS[1]} | cut -d- -f2`
+					if [[ "${snd}" == "list" || "${fst}" == "vm" ]]; then
+						IFS=$'\n,'
+						COMPREPLY=( $(compgen_names "${fst}-list" "$param" "$value") )
+						return 0
+					fi
+				fi
 				;;
 		esac
 	else
@@ -247,37 +250,37 @@ _xe()
 		elif [ "${isvcpusparams}" ]; then
 			extraargs=,$(for i in weight cap mask; do echo "VCPUs-params:$i="; done)
 		elif [ "${vmselectors}" ]; then
-		   if [ "${param}" ] ; then
-		      extraargs=",vm=,"$(params "vm-list" | sed 's/params=//g')
-		   else
-		      extraargs=",vm="
-		   fi
+			if [ "${param}" ] ; then
+				extraargs=",vm=,"$(params "vm-list" | sed 's/params=//g')
+			else
+				extraargs=",vm="
+			fi
 		elif [ "${hostselectors}" ]; then
-		   if [ "${param}" ] ; then
-		      extraargs=",host=,"$(params "host-list" | sed 's/params=//g')
-		   else
-		      extraargs=",host="
-		   fi
+			if [ "${param}" ] ; then
+				extraargs=",host=,"$(params "host-list" | sed 's/params=//g')
+			else
+				extraargs=",host="
+			fi
 		elif [ "${isvmppbackupschedule}" ]; then
-		   pfx=`echo ${isvmppbackupschedule} | cut -d ':' -f 1`
-		   COMPREPLY=( $(compgen -W "${pfx}:min=,${pfx}:hour=,${pfx}:days=" -- ${param}) )
-                   return 0
-                elif [ "${isvmpparchiveschedule}" ]; then
-		   pfx=`echo ${isvmpparchiveschedule} | cut -d ':' -f 1`
-                   COMPREPLY=( $(compgen -W "${pfx}:min=,${pfx}:hour=,${pfx}:days=" -- ${param}) )
-                   return 0
-                elif [ "${isvmpparchivetargetconfig}" ]; then
-		   pfx=`echo ${isvmpparchivetargetconfig} | cut -d ':' -f 1`
-                   COMPREPLY=( $(compgen -W "${pfx}:location=,${pfx}:username=,${pfx}:password=" -- ${param}) )
-                   return 0
-                elif [ "${isvmppalarmconfig}" ]; then
-		   pfx=`echo ${isvmppalarmconfig} | cut -d ':' -f 1`
-                   COMPREPLY=( $(compgen -W "${pfx}:smtp_server=,${pfx}:smtp_port=,${pfx}:email_address=" -- ${param}) )
-                   return 0
+			pfx=`echo ${isvmppbackupschedule} | cut -d ':' -f 1`
+			COMPREPLY=( $(compgen -W "${pfx}:min=,${pfx}:hour=,${pfx}:days=" -- ${param}) )
+			return 0
+		elif [ "${isvmpparchiveschedule}" ]; then
+			pfx=`echo ${isvmpparchiveschedule} | cut -d ':' -f 1`
+			COMPREPLY=( $(compgen -W "${pfx}:min=,${pfx}:hour=,${pfx}:days=" -- ${param}) )
+			return 0
+		elif [ "${isvmpparchivetargetconfig}" ]; then
+			pfx=`echo ${isvmpparchivetargetconfig} | cut -d ':' -f 1`
+			COMPREPLY=( $(compgen -W "${pfx}:location=,${pfx}:username=,${pfx}:password=" -- ${param}) )
+			return 0
+		elif [ "${isvmppalarmconfig}" ]; then
+			pfx=`echo ${isvmppalarmconfig} | cut -d ':' -f 1`
+			COMPREPLY=( $(compgen -W "${pfx}:smtp_server=,${pfx}:smtp_port=,${pfx}:email_address=" -- ${param}) )
+			return 0
 		else
-   		   extraargs=""
+			extraargs=""
 		fi
-                IFS=$'\n,'
+		IFS=$'\n,'
 		COMPREPLY=( $(compgen_params "${COMP_WORDS[1]}" "$extraargs" "$param") )
 		return 0
 	fi
@@ -288,40 +291,40 @@ _xe()
 #
 final_comma_separated_param()
 {
-  if expr "$1" : ".*," >/dev/null
-  then
-      old_ifs="$IFS"
-      bits=$(echo "$1" | sed -e 's#^\(.*\),\([^,]*\)$#\1%\2#g')
-      IFS=%
-      bits=($bits)
-      echo "${bits[1]}"
-      IFS="$old_ifs"
-  else
-      echo "$1"
-  fi
+	if expr "$1" : ".*," >/dev/null
+	then
+		old_ifs="$IFS"
+		bits=$(echo "$1" | sed -e 's#^\(.*\),\([^,]*\)$#\1%\2#g')
+		IFS=%
+		bits=($bits)
+		echo "${bits[1]}"
+		IFS="$old_ifs"
+	else
+		echo "$1"
+	fi
 }
 
 compgen_names()
 {
-  local vals=$("$xe" "$1" --minimal params="$2" 2>/dev/null | sed -e "s,',$MAGIC_SQUOTE,g" -e "s,\",$MAGIC_DQUOTE,g")
-  compgen_escape "$vals" "$3"
+	local vals=$("$xe" "$1" --minimal params="$2" 2>/dev/null | sed -e "s,',$MAGIC_SQUOTE,g" -e "s,\",$MAGIC_DQUOTE,g")
+	compgen_escape "$vals" "$3"
 }
 
 compgen_escape()
 {
-  local v=$(echo "$2" | sed -e "s,',$MAGIC_SQUOTE,g" -e "s,\",$MAGIC_DQUOTE,g")
-  compgen -W "$1" -- "$v" | sed -e 's, ,\\ ,g' -e 's,(,\\(,g' -e 's,),\\),g' -e 's,$, ,g' -e 's,|,\\|,g' -e "s,$MAGIC_SQUOTE,\\\',g" -e "s,$MAGIC_DQUOTE,\\\\\",g"
+	local v=$(echo "$2" | sed -e "s,',$MAGIC_SQUOTE,g" -e "s,\",$MAGIC_DQUOTE,g")
+	compgen -W "$1" -- "$v" | sed -e 's, ,\\ ,g' -e 's,(,\\(,g' -e 's,),\\),g' -e 's,$, ,g' -e 's,|,\\|,g' -e "s,$MAGIC_SQUOTE,\\\',g" -e "s,$MAGIC_DQUOTE,\\\\\",g"
 }
 
 params()
 {
-    "$xe" help "$1" 2>/dev/null | grep '^[^:]*params' | cut -d: -f2- | egrep -v "^ $" | cut -c 2- | sed -e 's/,/=,/g' -e 's/$/=/g' -e 's/:=/:/g' -e 's/-=/-/g' -e 's/ //g'
+	"$xe" help "$1" 2>/dev/null | grep '^[^:]*params' | cut -d: -f2- | egrep -v "^ $" | cut -c 2- | sed -e 's/,/=,/g' -e 's/$/=/g' -e 's/:=/:/g' -e 's/-=/-/g' -e 's/ //g'
 }
 
 compgen_params()
 {
-  local v=$(params "$1" | sed -e 's/<vm-selectors>=//g' -e 's/<host-selectors>=//g')
-  compgen -o nospace -W "$v$2" -- "$3"
+	local v=$(params "$1" | sed -e 's/<vm-selectors>=//g' -e 's/<host-selectors>=//g')
+	compgen -o nospace -W "$v$2" -- "$3"
 }
 
 complete -F _xe -o nospace xe
_______________________________________________
xen-api mailing list
[email protected]
http://lists.xensource.com/mailman/listinfo/xen-api

Reply via email to