[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH 3/3] raisin: improve output



Introduce an error_echo function that prints to stderr.
Call error_echo or verbose_echo, instead of echo, when possible and
appropriate.
Redirect build and tests output to /dev/null unless VERBOSE==1.
Redirect apt-get and yum output to /dev/null.
Fix echo arguments in check-package-deb.

Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
---
 components/grub             |    4 +--
 components/libvirt          |    4 +--
 components/linux            |    2 +-
 components/ovmf             |    6 ++--
 components/qemu             |    2 +-
 components/qemu_traditional |    2 +-
 components/seabios          |    6 ++--
 components/xen              |    8 ++---
 lib/commands.sh             |   18 +++++------
 lib/common-functions.sh     |   72 ++++++++++++++++++++++++++++++-------------
 lib/common-tests.sh         |    6 ++--
 tests/busybox-hvm           |    2 +-
 12 files changed, 80 insertions(+), 52 deletions(-)

diff --git a/components/grub b/components/grub
index fa72b99..3bb5254 100644
--- a/components/grub
+++ b/components/grub
@@ -19,10 +19,10 @@ function grub_check_package() {
 
     if [[ $RAISIN_ARCH != "x86_64" && $RAISIN_ARCH != "x86_32" ]]
     then
-        echo grub is only supported on x86_32 and x86_64
+        verbose_echo grub is only supported on x86_32 and x86_64
         return
     fi
-    echo Checking Grub dependencies
+    verbose_echo Checking Grub dependencies
     eval check-package \$DEP_"$DISTRO"_"$RAISIN_ARCH"
 }
 
diff --git a/components/libvirt b/components/libvirt
index a554643..20405ae 100644
--- a/components/libvirt
+++ b/components/libvirt
@@ -22,7 +22,7 @@ function libvirt_check_package() {
     local DEP_CentOS_x86_32="$DEP_Fedora_x86_32"
     local DEP_CentOS_x86_64="$DEP_Fedora_x86_64"
 
-    echo Checking Libvirt dependencies
+    verbose_echo Checking Libvirt dependencies
     eval check-package \$DEP_"$DISTRO"_"$RAISIN_ARCH"
 }
 
@@ -52,7 +52,7 @@ function libvirt_build() {
         cp daemon/libvirtd.init "$INST_DIR"/etc/rc.d/init.d/libvirtd
         chmod +x "$INST_DIR"/etc/rc.d/init.d/libvirtd
     else
-        echo "I don't know how write an init script for Libvirt on $DISTRO"
+        error_echo "I don't know how write an init script for Libvirt on 
$DISTRO"
     fi
     cd ..
 }
diff --git a/components/linux b/components/linux
index f90a894..9ae6955 100644
--- a/components/linux
+++ b/components/linux
@@ -15,7 +15,7 @@ function linux_check_package() {
     local DEP_CentOS_x86_32="$DEP_Fedora_x86_32"
     local DEP_CentOS_x86_64="$DEP_Fedora_x86_64"
 
-    echo Checking Linux dependencies
+    verbose_echo Checking Linux dependencies
     eval check-package \$DEP_"$DISTRO"_"$RAISIN_ARCH"
 }
 
diff --git a/components/ovmf b/components/ovmf
index a59a771..387044a 100644
--- a/components/ovmf
+++ b/components/ovmf
@@ -14,10 +14,10 @@ function ovmf_check_package() {
 
     if [[ $RAISIN_ARCH != "x86_64" ]]
     then
-        echo ovmf is only supported on x86_64
+        verbose_echo ovmf is only supported on x86_64
         return
     fi
-    echo Checking OVMF dependencies
+    verbose_echo Checking OVMF dependencies
     eval check-package \$DEP_"$DISTRO"_"$RAISIN_ARCH"
 }
 
@@ -25,7 +25,7 @@ function ovmf_check_package() {
 function ovmf_build() {
     if [[ $RAISIN_ARCH != "x86_64" ]]
     then
-        echo ovmf is only supported on x86_64
+        verbose_echo ovmf is only supported on x86_64
         return
     fi
 
diff --git a/components/qemu b/components/qemu
index 72cfec1..dce4ce0 100644
--- a/components/qemu
+++ b/components/qemu
@@ -11,7 +11,7 @@ function qemu_check_package() {
     local DEP_Fedora_x86_32="$DEP_Fedora_common"
     local DEP_Fedora_x86_64="$DEP_Fedora_common"
 
-    echo Checking QEMU dependencies
+    verbose_echo Checking QEMU dependencies
     eval check-package \$DEP_"$DISTRO"_"$RAISIN_ARCH"
 }
 
diff --git a/components/qemu_traditional b/components/qemu_traditional
index b338007..a9609b1 100644
--- a/components/qemu_traditional
+++ b/components/qemu_traditional
@@ -12,7 +12,7 @@ function qemu_traditional_check_package() {
     local DEP_Fedora_x86_32="$DEP_Fedora_common"
     local DEP_Fedora_x86_64="$DEP_Fedora_common"
 
-    echo Checking QEMU dependencies
+    verbose_echo Checking QEMU dependencies
     eval check-package \$DEP_"$DISTRO"_"$RAISIN_ARCH"
 }
 
diff --git a/components/seabios b/components/seabios
index ed2c7d2..8fea193 100644
--- a/components/seabios
+++ b/components/seabios
@@ -14,10 +14,10 @@ function seabios_check_package() {
 
     if [[ $RAISIN_ARCH != "x86_64" && $RAISIN_ARCH != "x86_32" ]]
     then
-        echo seabios is only supported on x86_32 and x86_64
+        verbose_echo seabios is only supported on x86_32 and x86_64
         return
     fi
-    echo Checking SeaBIOS dependencies
+    verbose_echo Checking SeaBIOS dependencies
     eval check-package \$DEP_"$DISTRO"_"$RAISIN_ARCH"
 }
 
@@ -25,7 +25,7 @@ function seabios_check_package() {
 function seabios_build() {
     if [[ $RAISIN_ARCH != "x86_64" && $RAISIN_ARCH != "x86_32" ]]
     then
-        echo seabios is only supported on x86_32 and x86_64
+        verbose_echo seabios is only supported on x86_32 and x86_64
         return
     fi
 
diff --git a/components/xen b/components/xen
index add8136..6b700e5 100644
--- a/components/xen
+++ b/components/xen
@@ -19,7 +19,7 @@ function xen_check_package() {
     local DEP_CentOS_x86_32="$DEP_CentOS_common dev86 texinfo iasl"
     local DEP_CentOS_x86_64="$DEP_CentOS_x86_32 glibc-devel.i686"
 
-    echo Checking Xen dependencies
+    verbose_echo Checking Xen dependencies
     eval check-package \$DEP_"$DISTRO"_"$RAISIN_ARCH"
 }
 
@@ -62,13 +62,13 @@ function _xen_create_bridge_Debian() {
 
     if [[ -z "$IFACE" ]]
     then
-        echo "Please refer to the following page to setup networking:"
-        echo 
"http://wiki.xenproject.org/wiki/Network_Configuration_Examples_(Xen_4.1%2B)"
+        error_echo "Please refer to the following page to setup networking:"
+        error_echo 
"http://wiki.xenproject.org/wiki/Network_Configuration_Examples_(Xen_4.1%2B)"
         return 1
     fi
     if [[ "`grep $BRIDGE /etc/network/interfaces`" ]]
     then
-        echo "a network bridge seems to be already setup"
+        verbose_echo "a network bridge seems to be already setup"
         return 0
     fi
 
diff --git a/lib/commands.sh b/lib/commands.sh
index ffbadb4..a79611e 100755
--- a/lib/commands.sh
+++ b/lib/commands.sh
@@ -17,29 +17,29 @@ function check-builddep() {
 
     if [[ -n "${missing[@]}" ]]
     then
-        echo "Missing packages: ${missing[@]}"
+        echo "$PREPEND Missing packages: ${missing[@]}"
         if [[ "$YES" = "n" ]]
         then
             return
         elif [[ "$YES" != "y" ]]
         then
-            echo "Do you want Raisin to automatically install them for you? 
(y/n)"
+            echo "$PREPEND Do you want Raisin to automatically install them 
for you? (y/n)"
             while read answer
             do
                 if [[ "$answer" = "n" ]]
                 then
-                    echo "Please install, or run ./raise install-builddep"
+                    echo "$PREPEND Please install, or run ./raise 
install-builddep"
                     exit 1
                 elif [[ "$answer" = "y" ]]
                 then
                     break
                 else
-                    echo "Reply y or n"
+                    echo "$PREPEND Reply y or n"
                 fi
             done
         fi
 
-        echo "Installing..."
+        echo "$PREPEND Installing..."
         install-package "${missing[@]}"
     fi
 }
@@ -72,7 +72,7 @@ function install() {
     # need single braces for filename matching expansion
     if [ ! -f xen-sytem*rpm ] && [ ! -f xen-system*deb ]
     then
-        echo You need to raise build first.
+        error_echo You need to raise build first.
         exit 1
     fi
     install_package xen-system
@@ -84,8 +84,8 @@ function configure() {
         return
     elif [[ "$YES" != "y" ]]
     then
-        echo "Proceeding we'll make changes to the running system,"
-        echo "are you sure that you want to continue? (y/n)"
+        echo "$PREPEND Proceeding we'll make changes to the running system,"
+        echo "$PREPEND are you sure that you want to continue? (y/n)"
         while read answer
         do
             if [[ "$answer" = "n" ]]
@@ -95,7 +95,7 @@ function configure() {
             then
                 break
             else
-                echo "Reply y or n"
+                echo "$PREPEND Reply y or n"
             fi
         done
     fi
diff --git a/lib/common-functions.sh b/lib/common-functions.sh
index 2edb168..f293ff4 100644
--- a/lib/common-functions.sh
+++ b/lib/common-functions.sh
@@ -3,10 +3,14 @@
 function verbose_echo() {
     if [[ $VERBOSE -eq 1 ]]
     then
-        echo $*
+        echo "$PREPEND" $*
     fi
 }
 
+function error_echo() {
+    echo "$PREPEND" $* >&2
+}
+
 # Executed once at the beginning of the script
 function common_init() {
     export BASEDIR=`pwd`
@@ -15,6 +19,7 @@ function common_init() {
     export RAISIN_MAKE=${MAKE-make}
     export PREFIX=${PREFIX-/usr}
     export INST_DIR=${DESTDIR-dist}
+    export PREPEND="[raisin]"
     
     INST_DIR=`readlink -f $INST_DIR`
     
@@ -24,15 +29,15 @@ function common_init() {
         export SUDO=""
     elif [[ ! -f `which sudo 2>/dev/null` ]]
     then
-        echo "Raisin requires sudo to install build dependencies for you."
-        echo "You can only build without it."
+        error_echo "Raisin requires sudo to install build dependencies for 
you."
+        error_echo "You can only build without it."
         export SUDO=""
     fi
 
     if [[ -z "$BASH_VERSINFO" || ${BASH_VERSINFO[0]} -lt 3 ||
         (${BASH_VERSINFO[0]} -eq 3 && ${BASH_VERSINFO[1]} -lt 2) ]]
     then
-        echo "Raisin requires BASH 3.2 or newer."
+        error_echo "Raisin requires BASH 3.2 or newer."
         exit 1
     fi
 
@@ -186,7 +191,7 @@ function get_arch() {
 }
 
 function _check-package-deb() {
-    verbose_echo "Checking for package ${args[0]}"
+    verbose_echo "Checking for package $1"
 
     if dpkg -s "$1" 2>/dev/null | grep -q "Status:.*installed"
     then
@@ -197,7 +202,7 @@ function _check-package-deb() {
 }
 
 function _install-package-deb() {
-    $SUDO apt-get install -y $*
+    $SUDO apt-get install -y $* > /dev/null
 }
 
 function _check-package-rpm() {
@@ -212,7 +217,7 @@ function _check-package-rpm() {
 }
 
 function _install-package-rpm() {
-    $SUDO yum install -y $*
+    $SUDO yum install -y $* > /dev/null
 }
 
 # Modifies inherited variable "missing"
@@ -236,13 +241,13 @@ function start_initscripts() {
     do
         case $DISTRO in
             "Debian" )
-            $SUDO update-rc.d $1 defaults || echo "Couldn't set $1 to start"
+            $SUDO update-rc.d $1 defaults || error_echo "Couldn't set $1 to 
start"
             ;;
             "Fedora" )
-            $SUDO chkconfig --add $1 || echo "Couldn't set $1 to start"
+            $SUDO chkconfig --add $1 || error_echo "Couldn't set $1 to start"
             ;;
             * )
-            echo "I don't know how to start initscripts on $DISTRO"
+            error_echo "I don't know how to start initscripts on $DISTRO"
             return 1
             ;;
         esac
@@ -255,13 +260,13 @@ function stop_initscripts() {
     do
         case $DISTRO in
             "Debian" )
-            $SUDO update-rc.d $1 remove || echo "Couldn't remove $1 from init"
+            $SUDO update-rc.d $1 remove || error_echo "Couldn't remove $1 from 
init"
             ;;
             "Fedora" )
-            $SUDO chkconfig --del $1 || echo "Couldn't remove $1 from init"
+            $SUDO chkconfig --del $1 || error_echo "Couldn't remove $1 from 
init"
             ;;
             * )
-            echo "I don't know how to start initscripts on $DISTRO"
+            error_echo "I don't know how to start initscripts on $DISTRO"
             return 1
             ;;
         esac
@@ -291,9 +296,14 @@ function for_each_component () {
             continue
         fi
 
-        verbose_echo calling "$component"_"$1"
-        "$component"_"$1"
-        verbose_echo "$component"_"$1" done
+        echo "$PREPEND" calling "$component"_"$1"
+        if [[ $VERBOSE -eq 0 ]]
+        then
+            "$component"_"$1" &> /dev/null
+        else
+            "$component"_"$1"
+        fi
+        echo "$PREPEND" "$component"_"$1" done
     done
 }
 
@@ -301,6 +311,7 @@ function run_tests() {
     local t
     local enabled
     local found
+    local ret
 
     for t in `cat "$BASEDIR"/tests/series`
     do
@@ -319,9 +330,26 @@ function run_tests() {
             continue
         fi
 
-        verbose_echo running test "$t"
-        "$BASEDIR"/tests/$t
-        verbose_echo "test "$t" done"
+        ret=0
+        if [[ $VERBOSE -eq 0 ]]
+        then
+            echo -n "$PREPEND test $t: "
+            "$BASEDIR"/tests/$t &>/dev/null || ret=1
+            if [[ $ret -eq 0 ]]
+            then
+                echo "success"
+            else
+                echo "fail"
+            fi
+        else
+            "$BASEDIR"/tests/$t || ret=1
+            if [[ $ret -eq 0 ]]
+            then
+                echo "$PREPEND test $t: success"
+            else
+                echo "$PREPEND test $t: fail"
+            fi
+        fi
     done
 }
 
@@ -336,7 +364,7 @@ function init_tests() {
     then
         check-package busybox grub2 which
     else
-        echo "I don't know distro $DISTRO. It might be missing packages."
+        error_echo "I don't know distro $DISTRO. It might be missing packages."
     fi
     
     if [[ -n "${missing[@]}" ]]
@@ -372,7 +400,7 @@ function install_package() {
     then
         $SUDO rpm -i --force "$1"-`git show --oneline | head -1 | cut -d " " 
-f 1`-0.$RAISIN_ARCH.rpm
     else
-        echo "Don't know how to install packages on $DISTRO"
+        error_echo "Don't know how to install packages on $DISTRO"
     fi
 }
 
@@ -384,6 +412,6 @@ function uninstall_package() {
     then
         $SUDO rpm -e "$1"
     else
-        echo "Don't know how to uninstall packages on $DISTRO"
+        error_echo "Don't know how to uninstall packages on $DISTRO"
     fi
 }
diff --git a/lib/common-tests.sh b/lib/common-tests.sh
index aa1daa4..02bca1c 100644
--- a/lib/common-tests.sh
+++ b/lib/common-tests.sh
@@ -133,7 +133,7 @@ EOF
             --grub-mkdevicemap=$tmpdir/boot/grub/device.map \
             --root-directory=$tmpdir $dev
     else
-        echo "I don't know how to install grub on $DISTRO"
+        echo "$PREPEND I don't know how to install grub on $DISTRO"
     fi
 
     $SUDO umount $tmpdir
@@ -149,7 +149,7 @@ function check_guest_alive() {
         i=$((i+1))
         if [[ $i -gt 60 ]]
         then
-            echo Timeout connecting to guest
+            echo $PREPEND Timeout connecting to guest
             return 1
         fi
     done
@@ -168,7 +168,7 @@ function get_host_initrd() {
     then
         echo "/boot/initramfs-`uname -r`".img
     else
-        echo "I don't know how to find the initrd"
+        echo "$PREPEND I don't know how to find the initrd"
         exit 1
     fi
 }
diff --git a/tests/busybox-hvm b/tests/busybox-hvm
index b97ae34..c8024e5 100755
--- a/tests/busybox-hvm
+++ b/tests/busybox-hvm
@@ -14,7 +14,7 @@ function cleanup() {
 
 if [[ $RAISIN_ARCH != "x86_64" && $RAISIN_ARCH != "x86_32" ]]
 then
-    echo busybox hvm test only valid on x86
+    echo $PREPEND busybox hvm test only valid on x86
     exit 0
 fi
 
-- 
1.7.10.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.