[PATCH] replace gnu xargs usage in notmuch-mutt with perl
Tomi Ollila
tomi.ollila at iki.fi
Tue Apr 10 09:28:37 PDT 2012
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
More information about the notmuch
mailing list