Make notmuch-mutt script more portable
authorGreg Anders <greg@gpanders.com>
Mon, 16 Mar 2020 18:27:42 +0000 (12:27 -0600)
committerDavid Bremner <david@tethera.net>
Mon, 23 Mar 2020 01:57:25 +0000 (22:57 -0300)
The -D flag to install (used in the Makefile) is GNU-specific and does
not work on BSD distributions (i.e. macOS). Likewise with the xargs -r
flag. These changes use portable alternatives to these flags while
preserving the exact behavior.

contrib/notmuch-mutt/Makefile
contrib/notmuch-mutt/notmuch-mutt

index 855438be35779a8497a9a7b4981892fe66af05e3..de933eaa72d26117eb5672fb3497a9d4768ead99 100644 (file)
@@ -15,11 +15,11 @@ README.html: README
        markdown $< > $@
 
 install: all
        markdown $< > $@
 
 install: all
-       mkdir -p $(DESTDIR)$(prefix)/bin
+       mkdir -p $(DESTDIR)$(prefix)/bin $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(sysconfdir)/Muttrc.d
        sed "1s|^#!.*|#! $(PERL_ABSOLUTE)|" < $(NAME) > $(DESTDIR)$(prefix)/bin/$(NAME)
        chmod 755 $(DESTDIR)$(prefix)/bin/$(NAME)
        sed "1s|^#!.*|#! $(PERL_ABSOLUTE)|" < $(NAME) > $(DESTDIR)$(prefix)/bin/$(NAME)
        chmod 755 $(DESTDIR)$(prefix)/bin/$(NAME)
-       install -D -m 644 $(NAME).1 $(DESTDIR)$(mandir)/man1/$(NAME).1
-       install -D -m 644 $(NAME).rc $(DESTDIR)$(sysconfdir)/Muttrc.d/$(NAME).rc
+       install -m 644 $(NAME).1 $(DESTDIR)$(mandir)/man1/
+       install -m 644 $(NAME).rc $(DESTDIR)$(sysconfdir)/Muttrc.d/
 
 clean:
        rm -f notmuch-mutt.1 README.html
 
 clean:
        rm -f notmuch-mutt.1 README.html
index 0e46a8c1b95e76163eed68694aa5a1a973c8b371..d33223bdd88e776acf79ae8b4ba2703ff1e6cc58 100755 (executable)
@@ -50,7 +50,7 @@ sub search($$$) {
     empty_maildir($maildir);
     system("notmuch search --output=files $dup_option $query"
           . " | sed -e 's: :\\\\ :g'"
     empty_maildir($maildir);
     system("notmuch search --output=files $dup_option $query"
           . " | sed -e 's: :\\\\ :g'"
-          . " | xargs -r -I searchoutput ln -s searchoutput $maildir/cur/");
+          . " | while IFS= read -r searchoutput; do ln -s \$searchoutput $maildir/cur/; done");
 }
 
 sub prompt($$) {
 }
 
 sub prompt($$) {