[PATCH] replace gnu xargs usage in notmuch-mutt with perl

2012-04-10 Thread Tomi Ollila
On Tue, Apr 10 2012, Taylor Carpenter wrote:

> ---

what if instead of

> +my @filelist = `notmuch search --output=files $query`;
> +foreach(@filelist) {

there is:

  open my $fh, '-|', qw/notmuch search --output=files/, $query;
  while (<$fh>) { 
   ...
  }
  unless (close $fh) {
 # handle error case
  }

Tomi

(in addition to more verbose commit message & unrelated change moved to
another commit)


>  contrib/notmuch-mutt/notmuch-mutt |   12 
>  1 files changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/contrib/notmuch-mutt/notmuch-mutt 
> b/contrib/notmuch-mutt/notmuch-mutt
> index 71206c3..dbe7f2d 100755
> --- a/contrib/notmuch-mutt/notmuch-mutt
> +++ b/contrib/notmuch-mutt/notmuch-mutt
> @@ -1,4 +1,4 @@
> -#!/usr/bin/perl -w
> +#!/usr/bin/env perl -w
>  #
>  # notmuch-mutt - notmuch (of a) helper for Mutt
>  #
> @@ -12,6 +12,7 @@ use strict;
>  use warnings;
>  
>  use File::Path;
> +use File::Basename;
>  use Getopt::Long qw(:config no_getopt_compat);
>  use Mail::Internet;
>  use Mail::Box::Maildir;
> @@ -41,9 +42,12 @@ sub search($$) {
>  $query = shell_quote($query);
>  
>  empty_maildir($maildir);
> -system("notmuch search --output=files $query"
> -. " | sed -e 's: : :g'"
> -. " | xargs --no-run-if-empty ln -s -t $maildir/cur/");
> +my @filelist = `notmuch search --output=files $query`;
> +foreach(@filelist) {
> +chomp;
> +my $target = sprintf("$maildir/cur/%s", basename($_));
> +symlink($_, $target);
> +}
>  }
>  
>  sub prompt($$) {
> -- 
> 1.7.7.4
>
> ___
> notmuch mailing list
> notmuch at notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH] replace gnu xargs usage in notmuch-mutt with perl

2012-04-10 Thread Stefano Zacchiroli
Hi Taylor, thanks for your patch. It makes sense to me, and has the
beneficial side effect of avoiding a sed pass to do some poor men shell
escaping.

Before applying, however, can you please update it to:

- include a reasonable comment (as suggested by David)
- avoid patching the shebang line (ditto)
- coalesce the sprintf() line into the following symlink line (using
  sprintf seems redundant here: it's plain string concatenation)

Thanks!
Cheers.

PS please Cc:-me on replies
-- 
Stefano Zacchiroli zack@{upsilon.cc,pps.jussieu.fr,debian.org} . o .
Maître de conférences   ..   http://upsilon.cc/zack   ..   . . o
Debian Project Leader...   @zack on identi.ca   ...o o o
« the first rule of tautology club is the first rule of tautology club »
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH] replace gnu xargs usage in notmuch-mutt with perl

2012-04-10 Thread Tomi Ollila
On Tue, Apr 10 2012, Taylor Carpenter wrote:

 ---

what if instead of

 +my @filelist = `notmuch search --output=files $query`;
 +foreach(@filelist) {

there is:

  open my $fh, '-|', qw/notmuch search --output=files/, $query;
  while ($fh) { 
   ...
  }
  unless (close $fh) {
 # handle error case
  }

Tomi

(in addition to more verbose commit message  unrelated change moved to
another commit)


  contrib/notmuch-mutt/notmuch-mutt |   12 
  1 files changed, 8 insertions(+), 4 deletions(-)

 diff --git a/contrib/notmuch-mutt/notmuch-mutt 
 b/contrib/notmuch-mutt/notmuch-mutt
 index 71206c3..dbe7f2d 100755
 --- a/contrib/notmuch-mutt/notmuch-mutt
 +++ b/contrib/notmuch-mutt/notmuch-mutt
 @@ -1,4 +1,4 @@
 -#!/usr/bin/perl -w
 +#!/usr/bin/env perl -w
  #
  # notmuch-mutt - notmuch (of a) helper for Mutt
  #
 @@ -12,6 +12,7 @@ use strict;
  use warnings;
  
  use File::Path;
 +use File::Basename;
  use Getopt::Long qw(:config no_getopt_compat);
  use Mail::Internet;
  use Mail::Box::Maildir;
 @@ -41,9 +42,12 @@ sub search($$) {
  $query = shell_quote($query);
  
  empty_maildir($maildir);
 -system(notmuch search --output=files $query
 -.  | sed -e 's: : :g'
 -.  | xargs --no-run-if-empty ln -s -t $maildir/cur/);
 +my @filelist = `notmuch search --output=files $query`;
 +foreach(@filelist) {
 +chomp;
 +my $target = sprintf($maildir/cur/%s, basename($_));
 +symlink($_, $target);
 +}
  }
  
  sub prompt($$) {
 -- 
 1.7.7.4

 ___
 notmuch mailing list
 notmuch@notmuchmail.org
 http://notmuchmail.org/mailman/listinfo/notmuch
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


[PATCH] replace gnu xargs usage in notmuch-mutt with perl

2012-04-09 Thread David Bremner

Hi Taylor, and thanks for the patch.

In general for notmuch patches we prefer

- some kind of commit message beyond the one line summary explaining the
rationale for the change.

- not to have unrelated changes (/usr/bin/env perl) in the patch.

d




[PATCH] replace gnu xargs usage in notmuch-mutt with perl

2012-04-09 Thread Taylor Carpenter
---
 contrib/notmuch-mutt/notmuch-mutt |   12 
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/contrib/notmuch-mutt/notmuch-mutt 
b/contrib/notmuch-mutt/notmuch-mutt
index 71206c3..dbe7f2d 100755
--- a/contrib/notmuch-mutt/notmuch-mutt
+++ b/contrib/notmuch-mutt/notmuch-mutt
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/env perl -w
 #
 # notmuch-mutt - notmuch (of a) helper for Mutt
 #
@@ -12,6 +12,7 @@ use strict;
 use warnings;

 use File::Path;
+use File::Basename;
 use Getopt::Long qw(:config no_getopt_compat);
 use Mail::Internet;
 use Mail::Box::Maildir;
@@ -41,9 +42,12 @@ sub search($$) {
 $query = shell_quote($query);

 empty_maildir($maildir);
-system("notmuch search --output=files $query"
-  . " | sed -e 's: : :g'"
-  . " | xargs --no-run-if-empty ln -s -t $maildir/cur/");
+my @filelist = `notmuch search --output=files $query`;
+foreach(@filelist) {
+chomp;
+my $target = sprintf("$maildir/cur/%s", basename($_));
+symlink($_, $target);
+}
 }

 sub prompt($$) {
-- 
1.7.7.4



[PATCH] replace gnu xargs usage in notmuch-mutt with perl

2012-04-09 Thread Taylor Carpenter
---
 contrib/notmuch-mutt/notmuch-mutt |   12 
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/contrib/notmuch-mutt/notmuch-mutt 
b/contrib/notmuch-mutt/notmuch-mutt
index 71206c3..dbe7f2d 100755
--- a/contrib/notmuch-mutt/notmuch-mutt
+++ b/contrib/notmuch-mutt/notmuch-mutt
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/env perl -w
 #
 # notmuch-mutt - notmuch (of a) helper for Mutt
 #
@@ -12,6 +12,7 @@ use strict;
 use warnings;
 
 use File::Path;
+use File::Basename;
 use Getopt::Long qw(:config no_getopt_compat);
 use Mail::Internet;
 use Mail::Box::Maildir;
@@ -41,9 +42,12 @@ sub search($$) {
 $query = shell_quote($query);
 
 empty_maildir($maildir);
-system(notmuch search --output=files $query
-  .  | sed -e 's: : :g'
-  .  | xargs --no-run-if-empty ln -s -t $maildir/cur/);
+my @filelist = `notmuch search --output=files $query`;
+foreach(@filelist) {
+chomp;
+my $target = sprintf($maildir/cur/%s, basename($_));
+symlink($_, $target);
+}
 }
 
 sub prompt($$) {
-- 
1.7.7.4

___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH] replace gnu xargs usage in notmuch-mutt with perl

2012-04-09 Thread David Bremner

Hi Taylor, and thanks for the patch.

In general for notmuch patches we prefer

- some kind of commit message beyond the one line summary explaining the
rationale for the change.

- not to have unrelated changes (/usr/bin/env perl) in the patch.

d


___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch