[Server-devel] [PATCH] ds-postproces.py: fix and tighten up setfacl calls

martin.langhoff at gmail.com martin.langhoff at gmail.com
Tue Jul 22 02:36:12 EDT 2008


From: Martin Langhoff <martin at laptop.org>

GNU xargs can give nasty surprises as it defaults to
running the command anyway. BSD xargs does the sensible
thing, but that's not what we have here.

While the GNU xargs team continues on its world domination plans,
we make sure we don't misfire our setfacl, using -no-run-if-empty.
---
 server/ds-postprocess.py |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/server/ds-postprocess.py b/server/ds-postprocess.py
index a99b6ab..b55b3e1 100755
--- a/server/ds-postprocess.py
+++ b/server/ds-postprocess.py
@@ -98,21 +98,21 @@ if (exitcode != 0):
 # To say
 #
 # find user[5]/datastore- + datestamp -type f \
-#   | xargs -n100 setfactl -m u:apache:r
+#   | xargs -n100 -no-run-if-empty setfactl -m u:apache:r
 # find user[5]/datastore- + datestamp -type d \
-#   | xargs -n100 setfactl -m u:apache:rx
+#   | xargs -n100 -no-run-if-empty setfactl -m u:apache:rx
 #
 # We say Pythonistically
 #
-psrc  = Popen(['find', user[5]+'/datastore-' + datestamp,
+psrc  = subprocess.Popen(['find', user[5]+'/datastore-' + datestamp,
                '-type', 'f'], stdout=PIPE)
-psink = Popen(['xargs', '-n100', 'setfacl', '-m', 'u:apache:r'],
+psink = subprocess.Popen(['xargs', '-n100', '-no-run-if-empty', 'setfacl', '-m', 'u:apache:r'],
               stdin=psrc.stdout,stdout=PIPE)
 psink.communicate()
 
-psrc  = Popen(['find', user[5]+'/datastore-' + datestamp,
+psrc  = subprocess.Popen(['find', user[5]+'/datastore-' + datestamp,
                '-type', 'd'], stdout=PIPE)
-psink = Popen(['xargs', '-n100', 'setfacl', '-m', 'u:apache:rx'],
+psink = subprocess.Popen(['xargs', '-n100', '-no-run-if-empty', 'setfacl', '-m', 'u:apache:rx'],
               stdin=psrc.stdout,stdout=PIPE)
 psink.communicate()
 
-- 
1.5.6.dirty



More information about the Server-devel mailing list