Skip to contentSkip to conversation

Calling awk and not gawk in the Xen scripts

PATCH In review Thomas Goirand 2 participants 2 messages Apr 18, 2010 – Apr 19, 2010

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Calling awk and not gawk in the Xen scripts

Hi,

I noticed that 2 scripts in Xen 4.0.0 are calling "gawk". Normally, in most distributions, gawk is considered a specific version of awk. Calling "gawk" and not "awk" generally means that you need specificities of the "g" version of awk, as opposed to "mawk" which is another implementation of the same tool.

So, unless I misread the scripts, Xen doesn't need to use gawk but just any implementation of awk, and the attached patch can safely be applied.

If I am wrong (which I don't think I am at the first look) and that there's a reason why gawk is used and not awk, then IMHO, the toplevel README should mention it in the prerequisites.

Thomas

tools/hotplug/Linux/network-bridge +1 -1
diff -u -r xen-4.0.0.orig/tools/hotplug/Linux/network-bridge xen-4.0.0/tools/hotplug/Linux/network-bridge
@@ -80,7 +80,7 @@
     local interf=$1
     local prefix=${interf%[[:digit:]]}
     local ifs=$(ip link show | grep " $prefix" |\
-                gawk '{ printf ("%s",substr($2,1,length($2)-1)) }' |\
+                awk '{ printf ("%s",substr($2,1,length($2)-1)) }' |\
                 sed s/$interf//)
     echo "$ifs"
 }
tools/hotplug/Linux/vtpm-common.sh +6 -6
diff -u -r xen-4.0.0.orig/tools/hotplug/Linux/vtpm-common.sh xen-4.0.0/tools/hotplug/Linux/vtpm-common.sh
@@ -98,7 +98,7 @@
 		avail=0
 	else
 		instances=$(cat $VTPMDB |                \
-		           gawk                          \
+		           awk                          \
 		           '{                            \
 		               if (1 != index($1,"#")) { \
 		                 printf("%s ",$2);       \
@@ -120,7 +120,7 @@
 function vtpmdb_get_free_instancenum () {
 	local ctr instances don found
 	instances=$(cat $VTPMDB |                \
-	           gawk                          \
+	           awk                          \
 	           '{                            \
 	               if (1 != index($1,"#")) { \
 	                 printf("%s ",$2);       \
@@ -174,7 +174,7 @@
 	inst=$2
 
 	res=$(cat $VTPMDB |            \
-	     gawk -vvmname=$vmname     \
+	     awk -vvmname=$vmname     \
 	          -vinst=$inst         \
 	     '{                        \
 	         if ( 1 == index($1,"#")) {\
@@ -209,7 +209,7 @@
 	VTPMDB_TMP="$VTPMDB".tmp
 
 	$(cat $VTPMDB |            \
-	 gawk -vvmname=$vmname     \
+	 awk -vvmname=$vmname     \
 	 '{                        \
 	    if ( $1 != vmname ) {  \
 	      print $0;            \
@@ -350,13 +350,13 @@
 function vtpm_isLocalAddress() {
 	local addr res
 	addr=$(ping $1 -c 1 |  \
-	       gawk '{ print substr($3,2,length($3)-2); exit }')
+	       awk '{ print substr($3,2,length($3)-2); exit }')
 	if [ "$addr" == "" ]; then
 		echo "-1"
 		return
 	fi
 	res=$(ifconfig | grep "inet addr" |  \
-	     gawk -vaddr=$addr               \
+	     awk -vaddr=$addr               \
 	     '{                              \
 	        if ( addr == substr($2, 6)) {\
 	          print "1";                 \

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel

Acked-by on v1 1/1
#1 lore raw

Thomas Goirand writes ("[Xen-devel] [patch] Calling awk and not gawk in the Xen scripts"):

Quoted 8 lines

I noticed that 2 scripts in Xen 4.0.0 are calling "gawk". Normally, in most distributions, gawk is considered a specific version of awk. Calling "gawk" and not "awk" generally means that you need specificities of the "g" version of awk, as opposed to "mawk" which is another implementation of the same tool.

So, unless I misread the scripts, Xen doesn't need to use gawk but just any implementation of awk, and the attached patch can safely be applied.

I agree.

Quoted 3 lines

If I am wrong (which I don't think I am at the first look) and that there's a reason why gawk is used and not awk, then IMHO, the toplevel README should mention it in the prerequisites.

They aren't very complicated uses of awk. If it does turn out to cause problems it should be straightforward to change the awk runes to use the SuSv6 subset of the language.

Ian.