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

Re: [libvirt] Remove bashisms from libvirt-guests



Le lundi 03 janvier 2011 22:35:48, Eric Blake a écrit :
> On 12/25/2010 12:44 PM, Laurent Léonard wrote:
> > Le lundi 20 décembre 2010 17:01:14, Eric Blake a écrit :
> >> On 12/18/2010 04:51 AM, Laurent Léonard wrote:
> >>>>> -    retval wait $virsh_pid && printf '\r%s%-12s\n' "$label" $"done"
> >>>>> +    retval wait $virsh_pid && printf '\r%s%-12s\n' "$label"
> >>>>> "`gettext \"done\"`"
> >>>> 
> >>>> Likewise: "$(gettext "done")"
> >>>> 
> >>>> But thanks for taking this on; we're getting closer to a nice
> >>>> solution.
> >>> 
> >>> I followed:
> >>> http://www.gnu.org/software/hello/manual/gettext/Preparing-Shell-Script
> >>> s. html but totally agree with your comments.
> >> 
> >> The gettext manual assumes that you are trying to be portable to all
> >> sorts of /bin/sh, including Solaris's horribly-dated version that lacks
> >> lots of POSIX features, hence it uses `` instead of $().  But for a
> >> Linux init script, we can safely assume a decent POSIX shell.
> > 
> > Any news about fixing those bashisms ?
> 
> I'm in favor of the ideas, but the patch isn't quite polished yet.  I've
> been a bit short on time to clean the patch up myself, and was hoping
> you would be willing to submit another version based on my comments from
> the previous round.  But given the current goal of releasing 0.8.7 in
> the very near future, I'm afraid this has missed the release deadline
> and you will have to maintain it as a backport for another release cycle.

The attached patch should match with your comments.

Thank you,
-- 
Laurent Léonard
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 3d7bc8b..9d9a86f 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -118,4 +118,5 @@ src/xen/xs_internal.c
 src/xenapi/xenapi_driver.c
 src/xenapi/xenapi_utils.c
 tools/console.c
+tools/libvirt-guests.init.in
 tools/virsh.c
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 271c11b..de5f662 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -146,6 +146,9 @@ BUILT_SOURCES += libvirt-guests.init
 
 libvirt-guests.init: libvirt-guests.init.in $(top_builddir)/config.status
 	$(AM_V_GEN)sed					\
+	    -e s!\ PACKAGE\@! PACKAGE@!g		\
+	    -e s!\ bindir\@! bindir@!g			\
+	    -e s!\ localedir\@! localedir@!g		\
 	    -e s!\ localstatedir\@! localstatedir@!g	\
 	    -e s!\ sbindir\@! sbindir@!g		\
 	    -e s!\ sysconfdir\@! sysconfdir@!g		\
diff --git a/tools/libvirt-guests.init.in b/tools/libvirt-guests.init.in
index e28938d..ea404b7 100644
--- a/tools/libvirt-guests.init.in
+++ b/tools/libvirt-guests.init.in
@@ -32,6 +32,13 @@ libvirtd= sbindir@/libvirtd
 test ! -r "$sysconfdir"/rc.d/init.d/functions ||
   . "$sysconfdir"/rc.d/init.d/functions
 
+. @bindir@/gettext.sh
+
+TEXTDOMAIN= PACKAGE@
+export TEXTDOMAIN
+TEXTDOMAINDIR= localedir@
+export TEXTDOMAINDIR
+
 URIS=default
 ON_BOOT=start
 ON_SHUTDOWN=suspend
@@ -129,7 +136,7 @@ start() {
     [ -f "$LISTFILE" ] || { started; return 0; }
 
     if [ "x$ON_BOOT" != xstart ]; then
-        echo $"libvirt-guests is configured not to start any guests on boot"
+        gettext "libvirt-guests is configured not to start any guests on boot"; echo
         rm -f "$LISTFILE"
         started
         return 0
@@ -144,20 +151,20 @@ start() {
             fi
         done
         if ! $configured; then
-            echo $"Ignoring guests on $uri URI"
+            eval_gettext "Ignoring guests on \$uri URI"; echo
             continue
         fi
 
-        echo $"Resuming guests on $uri URI..."
+        eval_gettext "Resuming guests on \$uri URI..."; echo
         for guest in $list; do
             name=$(guest_name $uri $guest)
-            echo -n $"Resuming guest $name: "
+            eval_gettext "Resuming guest \$name: "
             if guest_is_on $uri $guest; then
                 if $guest_running; then
-                    echo $"already active"
+                    gettext "already active"; echo
                 else
                     retval run_virsh $uri start "$name" >/dev/null && \
-                    echo $"done"
+                    gettext "done"; echo
                 fi
             fi
         done
@@ -173,7 +180,7 @@ suspend_guest()
     guest=$2
 
     name=$(guest_name $uri $guest)
-    label=$"Suspending $name: "
+    label=$(eval_gettext "Suspending \$name: ")
     echo -n "$label"
     run_virsh $uri managedsave $guest >/dev/null &
     virsh_pid=$!
@@ -188,7 +195,7 @@ suspend_guest()
             printf '\r%s%-12s ' "$label" "..."
         fi
     done
-    retval wait $virsh_pid && printf '\r%s%-12s\n' "$label" $"done"
+    retval wait $virsh_pid && printf '\r%s%-12s\n' "$label" "$(gettext "done")"
 }
 
 shutdown_guest()
@@ -197,13 +204,13 @@ shutdown_guest()
     guest=$2
 
     name=$(guest_name $uri $guest)
-    label=$"Shutting down $name: "
+    label=$(eval_gettext "Shutting down \$name: ")
     echo -n "$label"
     retval run_virsh $uri shutdown $guest >/dev/null || return
     timeout=$SHUTDOWN_TIMEOUT
     while [ $timeout -gt 0 ]; do
         sleep 1
-        timeout=$[timeout - 1]
+        timeout=$((timeout - 1))
         guest_is_on $uri $guest || return
         $guest_running || break
         printf '\r%s%-12d ' "$label" $timeout
@@ -211,9 +218,9 @@ shutdown_guest()
 
     if guest_is_on $uri $guest; then
         if $guest_running; then
-            printf '\r%s%-12s\n' "$label" $"failed to shutdown in time"
+            printf '\r%s%-12s\n' "$label" "$(gettext "failed to shutdown in time")"
         else
-            printf '\r%s%-12s\n' "$label" $"done"
+            printf '\r%s%-12s\n' "$label" "$(gettext "done")"
         fi
     fi
 }
@@ -226,7 +233,7 @@ stop() {
     if [ "x$ON_SHUTDOWN" = xshutdown ]; then
         suspending=false
         if [ $SHUTDOWN_TIMEOUT -le 0 ]; then
-            echo $"Shutdown action requested but SHUTDOWN_TIMEOUT was not set"
+            gettext "Shutdown action requested but SHUTDOWN_TIMEOUT was not set"; echo
             RETVAL=6
             return
         fi
@@ -234,10 +241,10 @@ stop() {
 
     : >"$LISTFILE"
     for uri in $URIS; do
-        echo -n $"Running guests on $uri URI: "
+        eval_gettext "Running guests on \$uri URI: "
 
         if [ "x$uri" = xdefault ] && [ ! -x "$libvirtd" ]; then
-            echo $"libvirtd not installed; skipping this URI."
+            gettext "libvirtd not installed; skipping this URI."; echo
             continue
         fi
 
@@ -250,7 +257,7 @@ stop() {
                 empty=false
             done
             if $empty; then
-                echo $"no running guests."
+                gettext "no running guests."; echo
             else
                 echo
                 echo $uri $list >>"$LISTFILE"
@@ -260,9 +267,9 @@ stop() {
 
     while read uri list; do
         if $suspending; then
-            echo $"Suspending guests on $uri URI..."
+            eval_gettext "Suspending guests on \$uri URI..."; echo
         else
-            echo $"Shutting down guests on $uri URI..."
+            eval_gettext "Shutting down guests on \$uri URI..."; echo
         fi
 
         for guest in $list; do
@@ -290,13 +297,13 @@ gueststatus() {
 # since there is no external daemon process matching this init script.
 rh_status() {
     if [ -f "$LISTFILE" ]; then
-        echo $"stopped, with saved guests"
+        gettext "stopped, with saved guests"; echo
         RETVAL=3
     else
         if [ -f "$VAR_SUBSYS_LIBVIRT_GUESTS" ]; then
-            echo $"started"
+            gettext "started"; echo
         else
-            echo $"stopped, with no saved guests"
+            gettext "stopped, with no saved guests"; echo
         fi
         RETVAL=0
     fi
@@ -305,7 +312,8 @@ rh_status() {
 # usage [val]
 # Display usage string, then exit with VAL (defaults to 2).
 usage() {
-    echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|gueststatus|shutdown}"
+    program_name=$0
+    eval_gettext "Usage: \$program_name {start|stop|status|restart|condrestart|try-restart|reload|force-reload|gueststatus|shutdown}"; echo
     exit ${1-2}
 }
 

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