Patchwork [6/6] runqemu: be sh neutral

login
register
mail settings
Submitter Bernhard Reutner-Fischer
Date May 3, 2012, 5:12 p.m.
Message ID <1336065154-8513-6-git-send-email-rep.dot.nop@gmail.com>
Download mbox | patch
Permalink /patch/26965/
State Accepted
Commit 2b93ed90736ed08c25561e24343a5ef2b8f7dbef
Headers show

Comments

Bernhard Reutner-Fischer - May 3, 2012, 5:12 p.m.
Now runs with dash and busybox' ash as well as with bash

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
---
 scripts/runqemu          |   13 ++++++++-----
 scripts/runqemu-internal |   16 ++++++++--------
 2 files changed, 16 insertions(+), 13 deletions(-)

Patch

diff --git a/scripts/runqemu b/scripts/runqemu
index 000d93a..305e46a 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -91,10 +91,9 @@  process_filename() {
 # Parse command line args without requiring specific ordering. It's a
 # bit more complex, but offers a great user experience.
 KVM_ENABLED="no"
-i=1
-while [ $i -le $# ]; do
-    arg=${!i}
-    case $arg in
+while true; do
+    arg=${1}
+    case "$arg" in
         "qemux86" | "qemux86-64" | "qemuarm" | "qemumips" | "qemuppc")
             [ -z "$MACHINE" ] && MACHINE=$arg || \
                 error "conflicting MACHINE types [$MACHINE] and [$arg]"
@@ -152,6 +151,7 @@  while [ $i -le $# ]; do
             KVM_ENABLED="yes"
             KVM_CAPABLE=`grep -q 'vmx\|smx' /proc/cpuinfo && echo 1`
             ;;
+        "") break ;;
         *)
             # A directory name is an nfs rootfs
             if [ -d "$arg" ]; then
@@ -174,7 +174,7 @@  while [ $i -le $# ]; do
             fi
             ;;
     esac
-    i=$((i + 1))
+    shift
 done
 
 if [ ! -c /dev/net/tun ] ; then
@@ -391,6 +391,9 @@  if [ "$libgl" != 'yes' ]; then
     exit 1;
 fi
 
+INTERNAL_SCRIPT="$0-internal"
+if [ ! -f "$INTERNAL_SCRIPT" -o ! -r "$INTERNAL_SCRIPT" ]; then
 INTERNAL_SCRIPT=`which runqemu-internal`
+fi
 
 . $INTERNAL_SCRIPT
diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal
index 1831a09..80a6d3c 100755
--- a/scripts/runqemu-internal
+++ b/scripts/runqemu-internal
@@ -69,7 +69,7 @@  QEMU_MEMORY="$mem_size"M
 
 # Bug 433: qemuarm cannot use > 256 MB RAM
 if [ "$MACHINE" = "qemuarm" ]; then
-    if [[ -z "$mem_size" || $mem_size -gt 256 ]]; then
+    if [ -z "$mem_size" -o $mem_size -gt 256 ]; then
         echo "WARNING: qemuarm does not support > 256M of RAM."
         echo "Changing QEMU_MEMORY to default of 256M."
         QEMU_MEMORY="256M"
@@ -111,7 +111,7 @@  acquire_lock() {
 
     if [ -e "$lockfile.lock" ]; then
         # Check that the lockfile is not stale
-        ps=`ps -ewwo pid | grep $(cat $lockfile.lock)`
+        ps=`ps -eo pid | grep $(cat $lockfile.lock)`
         if [ -z "$ps" ]; then
             echo "WARNING: Stale lock file detected, deleting $lockfile.lock."
             rm -f $lockfile.lock
@@ -211,8 +211,9 @@  cleanup() {
     stty sane
 }
 
-n1=$[ (`echo $TAP | sed 's/tap//'` * 2) + 1 ]
-n2=$[ (`echo $TAP | sed 's/tap//'` * 2) + 2 ]
+n0=$(echo $TAP | sed 's/tap//')
+n1=$(($n0 * 2 + 1))
+n2=$(($n1 + 1))
 
 KERNEL_NETWORK_CMD="ip=192.168.7.$n2::192.168.7.$n1:255.255.255.0"
 QEMU_TAP_CMD="-net tap,vlan=0,ifname=$TAP,script=no,downscript=no"
@@ -436,7 +437,7 @@  if [ ! -x "$QEMUBIN" ]; then
     return
 fi
 
-function _quit() {
+do_quit() {
     if [ -n "$PIDFILE" ]; then
         #echo kill `cat $PIDFILE`
         kill `cat $PIDFILE`
@@ -448,7 +449,7 @@  function _quit() {
 DISTCCD=`which distccd 2> /dev/null`
 PIDFILE=""
 
-trap _quit INT TERM QUIT
+trap do_quit INT TERM QUIT
 
 if [ -x "$DISTCCD" ]; then
     echo "Starting distccd..."
@@ -475,7 +476,7 @@  if grep -i ubuntu /etc/lsb-release &> /dev/null
 then
     # precede nvidia's driver on Ubuntu 10
     UBUNTU_MAIN_VERSION=`cat /etc/lsb-release |grep DISTRIB_RELEASE |cut -d=  -f 2| cut -d. -f 1`
-    if [ $UBUNTU_MAIN_VERSION -eq 10 ];
+    if [ "$UBUNTU_MAIN_VERSION" = "10" ];
     then
         GL_PATH=""
         if test -e /usr/lib/libGL.so
@@ -501,4 +502,3 @@  LD_PRELOAD="$GL_LD_PRELOAD" $QEMUBIN -kernel $KERNEL $QEMUOPTIONS $SERIALOPTS -n
 cleanup
 
 trap - INT TERM QUIT
-return