All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jim Cromie <jim.cromie@gmail.com>
To: linux-kernel@vger.kernel.org
Cc: linux-kbuild@vger.kernel.org, Jim Cromie <jim.cromie@gmail.com>
Subject: [PATCH 1/3] do collectcfiles work in perl itself, eschew shell pipeline
Date: Sat, 21 May 2011 02:21:46 -0600	[thread overview]
Message-ID: <1305966108-13399-2-git-send-email-jim.cromie@gmail.com> (raw)
In-Reply-To: <1305966108-13399-1-git-send-email-jim.cromie@gmail.com>

avoid spawning a shell pipeline doing cat, grep, sed,
and do it all inside perl.  The <*.c> construct works
at least as far back as 5.8.9

Note that this is not just an optimization; the sed command
in the pipeline was unterminated, due to lack of escape on the
end-of-line (\$) in the regex, resulting in this:

    $ perl ../linux-2.6/scripts/export_report.pl  > /dev/null
    sed: -e expression #1, char 5: unterminated `s' command
    sh: .mod.c/: not found

Comments on an earlier patch sought an all-perl implementation.

Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
cc: Michal Marek <mmarek@suse.cz>,
cc: linux-kbuild@vger.kernel.org
cc: Arnaud Lacombe lacombar@gmail.com
cc: Stephen Hemminger shemminger@vyatta.com
---
 scripts/export_report.pl |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/scripts/export_report.pl b/scripts/export_report.pl
index 04dce7c..5499ff0 100644
--- a/scripts/export_report.pl
+++ b/scripts/export_report.pl
@@ -49,8 +49,14 @@ sub usage {
 }
 
 sub collectcfiles {
-    my @file
-	= `cat .tmp_versions/*.mod | grep '.*\.ko\$' | sed s/\.ko$/.mod.c/`;
+    my @file;
+    while (<.tmp_versions/*.mod>) {
+	open my $fh, '<', $_ or die "cant open $_: $!\n";
+	push (@file,
+	      grep s/\.ko/.mod.c/,	# change the suffix
+	      grep m/.+\.ko/,		# find the .ko path
+	      <$fh>);			# lines in opened file
+    }
     chomp @file;
     return @file;
 }
-- 
1.7.4.1


  reply	other threads:[~2011-05-21  8:22 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-21  8:21 [PATCH 0/3] fixes, improvements on scripts/export_report.pl Jim Cromie
2011-05-21  8:21 ` Jim Cromie [this message]
2011-05-23  2:16   ` [PATCH 1/3] do collectcfiles work in perl itself, eschew shell pipeline Randy Dunlap
2011-05-23  2:16     ` Randy Dunlap
2011-05-21  8:21 ` [PATCH 2/3] sort SECTION 2 output of scripts/export_report.pl Jim Cromie
2011-05-21  8:21 ` [PATCH 3/3] in scripts/export_report.pl use warn() to issue WARNING, so they go to stderr Jim Cromie
2011-05-23 15:21   ` Randy Dunlap
2011-05-23 18:44   ` [PATCH 0/3 rev2] fix scripts/export_report.pl Jim Cromie
2011-05-23 18:44     ` [PATCH 1/3] do collectcfiles work in perl itself, eschew shell pipeline Jim Cromie
2011-05-23 18:44     ` [PATCH 2/3] sort SECTION 2 output of scripts/export_report.pl Jim Cromie
2011-05-23 18:44     ` [PATCH 3/3] in scripts/export_report.pl use warn() to issue WARNING, so they go to stderr Jim Cromie
2011-05-24 14:10     ` [PATCH 0/3 rev2] fix scripts/export_report.pl Michal Marek
2011-05-24 17:53       ` Jim Cromie
2011-05-25 12:15         ` Michal Marek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1305966108-13399-2-git-send-email-jim.cromie@gmail.com \
    --to=jim.cromie@gmail.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.