threads / patch / 940

patchFixing "cg-help typo" again

Subject: [COGITO PATCH] Fixing "cg-help typo" again

## tl;dr

3 messages between Jun 14, 2005 and Jun 15, 2005. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Pavel Roskin· Jun 14, 2005, 23:32 UTC · lore
Hello!

"cg-help typo" is broken again (same symptom - no output) because the print_help() output is piped through colorize(), which never fails.

I don't know any way to get return status of the first command in a pipeline, so I changed to code to put print_help() output in a variable, check status and then pipe the variable contents through colorize().

GNU bash can hold indefinitely much data in variables, and we need a few kilobytes at most.

Signed-off-by: Pavel Roskin <proski@gnu.org>
Show changes to cg-help +2 −1
diff --git a/cg-help b/cg-help
--- a/cg-help
+++ b/cg-help
@@ -59,7 +59,8 @@ colorize() {
 
 if [ "$ARGS" ]; then
 	cmd=$(echo "${ARGS[0]}" | sed 's/^cg-//')
-	( print_help $cmd | colorize ) && exit
+	helpdata="$(print_help $cmd)"
+	[ "$?" = 0 ] && { echo "$helpdata" | colorize; exit 0; }
 	echo "cg-help: no help available for command \"${ARGS[0]}\""
 	echo "Call cg-help without any arguments for the list of available commands"
 	exit 1
-- 
Regards,
Pavel Roskin
Jonas Fonseca· Jun 14, 2005, 23:43 UTC · re: Pavel Roskin · lore

Re: [COGITO PATCH] Fixing "cg-help typo" again

Pavel Roskin <proski@gnu.org> wrote Tue, Jun 14, 2005:
> Hello!
Hi,
> "cg-help typo" is broken again (same symptom - no output) because the
> print_help() output is piped through colorize(), which never fails.

Sorry, I broke it in the cg-help colorization patch, and has already sent a patch to pasky, off-list I am afraid ...

> 
> I don't know any way to get return status of the first command in a
> pipeline, so I changed to code to put print_help() output in a variable,
> check status and then pipe the variable contents through colorize().
Use the PIPESTATUS aray as in the patch I sent:
Show changes to diff +2 −1
@@ -59,7 +59,8 @@ colorize() {
 
 if [ "$ARGS" ]; then
 	cmd=$(echo "${ARGS[0]}" | sed 's/^cg-//')
-	( print_help $cmd | colorize ) && exit
+	print_help $cmd | colorize
+	[ "${PIPESTATUS[0]}" -eq 0 ] && exit
 	echo "cg-help: no help available for command \"${ARGS[0]}\""
 	echo "Call cg-help without any arguments for the list of available commands"
 	exit 1
-- 
Jonas Fonseca
Pavel Roskin· Jun 15, 2005, 00:17 UTC · re: Jonas Fonseca · lore

Re: [COGITO PATCH] Fixing "cg-help typo" again

Hi, Jonas!
On Wed, 2005-06-15 at 01:43 +0200, Jonas Fonseca wrote:
Show 6 quoted lines
> Pavel Roskin <proski@gnu.org> wrote Tue, Jun 14, 2005:
> > I don't know any way to get return status of the first command in a
> > pipeline, so I changed to code to put print_help() output in a variable,
> > check status and then pipe the variable contents through colorize().
> 
> Use the PIPESTATUS aray as in the patch I sent:
OK, your patch is better.
Acked-by: Pavel Roskin <proski@gnu.org>
-- 
Regards,
Pavel Roskin

← back to recent threads