From: Tomi Ollila Date: Thu, 12 Nov 2015 09:07:16 +0000 (+0200) Subject: Re: [PATCH] devel/emacs: add devel/try-emacs-mua.sh X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=4f423571d13b3ebc470351390f5705e46dbf69f2;p=notmuch-archives.git Re: [PATCH] devel/emacs: add devel/try-emacs-mua.sh --- diff --git a/df/6d0678f029c551675b74404f19f6b6ca160075 b/df/6d0678f029c551675b74404f19f6b6ca160075 new file mode 100644 index 000000000..a0c698b2f --- /dev/null +++ b/df/6d0678f029c551675b74404f19f6b6ca160075 @@ -0,0 +1,219 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by arlo.cworth.org (Postfix) with ESMTP id CF9DA6DE1930 + for ; Thu, 12 Nov 2015 01:07:17 -0800 (PST) +X-Virus-Scanned: Debian amavisd-new at cworth.org +X-Spam-Flag: NO +X-Spam-Score: 0.725 +X-Spam-Level: +X-Spam-Status: No, score=0.725 tagged_above=-999 required=5 tests=[AWL=0.073, + SPF_NEUTRAL=0.652] autolearn=disabled +Received: from arlo.cworth.org ([127.0.0.1]) + by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id mOFL7PHa236e for ; + Thu, 12 Nov 2015 01:07:15 -0800 (PST) +Received: from guru.guru-group.fi (guru.guru-group.fi [46.183.73.34]) + by arlo.cworth.org (Postfix) with ESMTP id E3B3C6DE192F + for ; Thu, 12 Nov 2015 01:07:14 -0800 (PST) +Received: from guru.guru-group.fi (localhost [IPv6:::1]) + by guru.guru-group.fi (Postfix) with ESMTP id 4742510007F; + Thu, 12 Nov 2015 11:07:16 +0200 (EET) +From: Tomi Ollila +To: Mark Walters , notmuch@notmuchmail.org +Subject: Re: [PATCH] devel/emacs: add devel/try-emacs-mua.sh +In-Reply-To: <87si4bwrsu.fsf@qmul.ac.uk> +References: <1446390985-20989-1-git-send-email-tomi.ollila@iki.fi> + <87si4bwrsu.fsf@qmul.ac.uk> +User-Agent: Notmuch/0.21+14~g053baf4 (http://notmuchmail.org) Emacs/24.3.1 + (x86_64-unknown-linux-gnu) +X-Face: HhBM'cA~ +MIME-Version: 1.0 +Content-Type: text/plain +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.20 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Thu, 12 Nov 2015 09:07:18 -0000 + +On Thu, Nov 12 2015, Mark Walters wrote: + +>> devel/try-emacs-mua.sh provides an easy way to try and experiment with +>> the notmuch emacs client provided in emacs subdirectory of notmuch +>> source tree. +>> +>> User is required to choose whether to run emacs with -q, -Q or neither +>> -- and experienced ones may add other command line options, like +>> '-f notmuch'. +>> +>> This script ensures that no .el files are newer than corresponding .elc +>> files so that user (/developer!) does not accidentally experiment with +>> outdated elisp files. The emacs variable to have the same effect, +>> `load-prefer-newer' is not available until emacs 24.4. +>> +>> The *scratch* buffer is filled with some code user can execute before +>> running notmuch code. +> +> I like this -- a nice simple way to get to a working but uncustomised +> test environment. +> +> I don't know how easy the following would be but one addition that I +> would find very useful would be a way to make this use the test +> corpus. This would be useful for giving a completely standard +> environment for interactive testing, but also for debugging what is +> going on when tests fail. +> +> Of course that is a feature request and should not delay the feature. +> +> Finally, I think there is a bug: +> +> +>> --- +>> +>> Addressed David's comments in id:87d1xdtim1.fsf@maritornes.cs.unb.ca +>> with 2 updates: +>> 1) removed "address completion insinuate" +>> 2) added code to initialize package system when using -q or -Q +>> +>> devel/try-emacs-mua.sh | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++ +>> 1 file changed, 92 insertions(+) +>> create mode 100755 devel/try-emacs-mua.sh +>> +>> diff --git a/devel/try-emacs-mua.sh b/devel/try-emacs-mua.sh +>> new file mode 100755 +>> index 000000000000..71be152c2346 +>> --- /dev/null +>> +++ b/devel/try-emacs-mua.sh +>> @@ -0,0 +1,92 @@ +>> +#!/bin/sh +>> + +>> +# This script provides an easy way to try and experiment with the +>> +# notmuch emacs client provided in notmuch/emacs directory. +>> + +>> +set -eu +>> + +>> +test $# -gt 0 || { +>> + exec >&2 +>> + echo +>> + echo "Usage: $0 '' | q | Q [other-emacs-args]" +>> + echo +>> + printf " $0 %s\n" "'' starts emacs without either -q or -Q option" \ +>> + "q starts emacs with -q" \ +>> + "Q starts emacs with -Q" +>> + echo +>> + echo Note that if there are notmuch-emacs .elc files that are older than +>> + echo their corresponding .el files those older .elcs will be removed. +>> + echo +>> + exit 1 +>> +} +>> + +>> +case $1 in '') opt= +>> + ;; q | -q) opt=-q +>> + ;; Q | -Q) opt=-Q +>> + ;; *) echo "option '$1' not '', 'q' nor 'Q'" >&2; exit 1 +>> +esac +>> +shift +>> + +>> +case $0 in +>> + *\"*) echo "'$0' contain one or more '\"'s" >&2; exit 1 ;; +>> + */*) d0=${0%/*} ;; +>> + *) d0=. +>> +esac +>> + +>> +pwd=$PWD +>> +cd "$d0/.." +>> +nmd=$PWD +>> +emd=$PWD/emacs +>> + +>> +test -f "$nmd"/emacs/notmuch-lib.el || { +>> + echo "Cannot find notmuch-emacs source directory" +>> + exit 1 +>> +} +>> + +>> +if test -x "$nmd"/notmuch +>> +then +>> + nmin=' +>> +To use accompanied notmuch binary from the same source, evaluate +>> +(setq exec-path (cons \"'"$nmd"'\" exec-path)) +>> +Note: Evaluating the above may be followed by unintended database +>> +upgrade and getting back to old version may require dump & restore. +>> +' +>> +else +>> + nmin= +>> +fi +>> + +>> +if test "$opt" = '-q' || test "$opt" = '-Q' +>> +then +>> + pkgin=' +>> +If you want to use packages (like company from elpa) evaluate +>> +(progn (require '\''package) (package-initialize)) +>> +' +>> +else +>> + pkgin= +>> +fi +> +> As far as I can see at this point we are in $nmd not $emd so the +> following does not delete stale .elc files. + +It sure doesn't! Thanks for the review. + +Tomi + + +> +>> + +>> +# ensure we don't load .elc files that are older than corresponding .el file +>> +# the emacs variable `load-prefer-newer' is not available until emacs 24.4 +>> +perl -e 'use strict; use warnings; +>> +while (<*.elc>) { +>> + my $elc = $_; s/elc$/el/; +>> + if (-M $_ < -M $elc) { +>> + warn "$_ is newer than $elc. Removing $elc\n"; +>> + unlink $elc or die "Failed to remove '\''$elc'\'': $!\n"; +>> + } +>> +}' +> +> +> Best wishes +> +> Mark +> +>> + +>> +cd "$pwd" +>> + +>> +# note: whitespace in $EMACS splits to command and args +>> +exec ${EMACS:-emacs} $opt -L "$emd" -l "$emd"/notmuch.el "$@" --eval ' +>> +(with-current-buffer "*scratch*" +>> + (insert " +>> +Go to the end of the following lines and type C-x C-e to evaluate +>> +(or C-j which is shorter but inserts evaluation results into buffer) +>> + +>> +To \"disable\" mail sending, evaluate +>> +(setq message-send-mail-function (lambda () t)) +>> +'"$nmin$pkgin"' +>> +To start notmuch (hello) screen, evaluate +>> +(notmuch-hello)") (set-buffer-modified-p nil))' +>> -- +>> 2.0.0 +>> +>> _______________________________________________ +>> notmuch mailing list +>> notmuch@notmuchmail.org +>> https://notmuchmail.org/mailman/listinfo/notmuch +> _______________________________________________ +> notmuch mailing list +> notmuch@notmuchmail.org +> https://notmuchmail.org/mailman/listinfo/notmuch