code: plan9front

Download patch

ref: 85bfb0e9ebb8f2238cff6c03e93c0dce31581845
parent: 4d872079d36939c3287b2968fbada7c4e4738762
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Sun Jan 9 21:01:11 EST 2022

reduce: use if() to test for exit status of pipeline

The new rc's exit status will be '' for a successfull
pipeline execution instead of '|'.

This is a bit too tightly coupled, so just use if()
statement instead, handling this in a portable way.

--- a/sys/src/ape/lib/ap/gen/reduce
+++ b/sys/src/ape/lib/ap/gen/reduce
@@ -2,15 +2,11 @@
 shift
 objtype=$1
 shift
-
-ls -p ../$objtype/*.[cs] >[2]/dev/null | sed 's/..$//;s/^/^/' > /tmp/reduce.$pid
-#
-#	if empty directory, just return the input files
-#
-if (! ~ $status '|') {
+if(ls -p ../$objtype/*.[cs] >[2]/dev/null | sed 's/..$//;s/^/^/' > /tmp/reduce.$pid) {
+	echo $* | tr ' ' \012 | grep -v -f /tmp/reduce.$pid | tr \012 ' '
+}
+if not {
+	# if empty directory, just return the input files
 	echo $*
-	rm /tmp/reduce.$pid
-	exit 0
 }
-echo $* | tr ' ' \012 | grep -v -f /tmp/reduce.$pid | tr \012 ' '
 rm /tmp/reduce.$pid
--- a/sys/src/libc/port/reduce
+++ b/sys/src/libc/port/reduce
@@ -2,15 +2,11 @@
 shift
 objtype=$1
 shift
-
-ls -p ../$objtype/*.[cs] >[2]/dev/null | sed 's/..$//;s/^/^/' > /tmp/reduce.$pid
-#
-#	if empty directory, just return the input files
-#
-if (! ~ $status '|') {
+if(ls -p ../$objtype/*.[cs] >[2]/dev/null | sed 's/..$//;s/^/^/' > /tmp/reduce.$pid) {
+	echo $* | tr ' ' \012 | grep -v -f /tmp/reduce.$pid | tr \012 ' '
+}
+if not {
+	# if empty directory, just return the input files
 	echo $*
-	rm /tmp/reduce.$pid
-	exit 0
 }
-echo $* | tr ' ' \012 | grep -v -f /tmp/reduce.$pid | tr \012 ' '
 rm /tmp/reduce.$pid
--- a/sys/src/libmp/port/reduce
+++ b/sys/src/libmp/port/reduce
@@ -2,15 +2,11 @@
 shift
 objtype=$1
 shift
-
-ls -p ../$objtype/*.[cs] >[2]/dev/null | sed 's/..$//' > /tmp/reduce.$pid
-#
-#	if empty directory, just return the input files
-#
-if (! ~ $status '|') {
+if(ls -p ../$objtype/*.[cs] >[2]/dev/null | sed 's/..$//;s/^/^/' > /tmp/reduce.$pid) {
+	echo $* | tr ' ' \012 | grep -v -f /tmp/reduce.$pid | tr \012 ' '
+}
+if not {
+	# if empty directory, just return the input files
 	echo $*
-	rm /tmp/reduce.$pid
-	exit 0
 }
-echo $* | tr ' ' \012 | grep -v -f /tmp/reduce.$pid | tr \012 ' '
 rm /tmp/reduce.$pid
--- a/sys/src/libsec/port/reduce
+++ b/sys/src/libsec/port/reduce
@@ -2,15 +2,11 @@
 shift
 objtype=$1
 shift
-
-ls -p ../$objtype/*.[cs] >[2]/dev/null | sed 's/..$//' > /tmp/reduce.$pid
-#
-#	if empty directory, just return the input files
-#
-if (! ~ $status '|') {
+if(ls -p ../$objtype/*.[cs] >[2]/dev/null | sed 's/..$//;s/^/^/' > /tmp/reduce.$pid) {
+	echo $* | tr ' ' \012 | grep -v -f /tmp/reduce.$pid | tr \012 ' '
+}
+if not {
+	# if empty directory, just return the input files
 	echo $*
-	rm /tmp/reduce.$pid
-	exit 0
 }
-echo $* | tr ' ' \012 | grep -v -f /tmp/reduce.$pid | tr \012 ' '
 rm /tmp/reduce.$pid