From 8da62db99b6d668511eb99881ad8889e4421ae7a Mon Sep 17 00:00:00 2001 From: Philipp Takacs Date: Mon, 31 Dec 2018 02:54:23 +0100 Subject: [PATCH] whatnow2 save metainformation in the draft itself by default meta information like last editor or altmsg is stored in the draft ifself. This can be overritten by the profile entry Metafile-Extension. --- etc/Makefile.in | 2 +- etc/mhl.whatnow2 | 4 ++ man/mh-profile.man5 | 7 +++ man/whatnow2.man1 | 1 + test/tests/whatnow2/default-workflow | 53 ++++++++++++++++++++++ test/tests/whatnow2/metafile | 60 +++++++++++++++++++++++++ uip/Makefile.in | 4 +- uip/whatnow2.sh | 80 +++++++++++++++++----------------- 8 files changed, 168 insertions(+), 43 deletions(-) create mode 100644 etc/mhl.whatnow2 create mode 100644 test/tests/whatnow2/default-workflow create mode 100644 test/tests/whatnow2/metafile diff --git a/etc/Makefile.in b/etc/Makefile.in index 7b2934e..b4aea9e 100644 --- a/etc/Makefile.in +++ b/etc/Makefile.in @@ -28,7 +28,7 @@ SED = sed # static configuration, format, and components files STATIC_FILES = components digestcomps distcomps forwcomps \ mhl.body mhl.format mhl.forward mhl.headers \ - mhl.reply rcvdistcomps rcvdistcomps.outbox \ + mhl.reply mhl.whatnow2 rcvdistcomps rcvdistcomps.outbox \ replcomps replgroupcomps scan.MMDDYY scan.YYYYMMDD \ scan.nmh scan.mailx scan.nomime scan.size scan.time \ scan.timely scan.unseen scan.meillo scan.default \ diff --git a/etc/mhl.whatnow2 b/etc/mhl.whatnow2 new file mode 100644 index 0000000..188634d --- /dev/null +++ b/etc/mhl.whatnow2 @@ -0,0 +1,4 @@ +ignores=mmh-* +extras:raw +: +body:nocomponent,overflowoffset=0,raw diff --git a/man/mh-profile.man5 b/man/mh-profile.man5 index dd8196f..3b692ee 100644 --- a/man/mh-profile.man5 +++ b/man/mh-profile.man5 @@ -388,6 +388,13 @@ Your signature will be added to the address puts in the `From:' header; do not include an address in the signature text. (profile, no default) .RE +.PP +.BR Metafile-Extention : +\&.meta +.RS 5 +This extions will be used to store meta information about a mail or a draft. +Currently only implemented by whatnow2. (profile, no default) +.RE .SS "Process Profile Entries" The following profile elements are used whenever an diff --git a/man/whatnow2.man1 b/man/whatnow2.man1 index f66bfe7..4ba5674 100644 --- a/man/whatnow2.man1 +++ b/man/whatnow2.man1 @@ -122,6 +122,7 @@ information. ^Path:~^To determine the user's mail storage ^Draft\-Folder:~^To set the default draft\-folder ^Editor:~^To override the default editor +^Metafile\-Extension:~^The optional extion for meta information like lasteditor ^\-next:~^To name an editor to be used after exit ^~^from ^listproc:~^Program to list the contents of a message diff --git a/test/tests/whatnow2/default-workflow b/test/tests/whatnow2/default-workflow new file mode 100644 index 0000000..bd4cf88 --- /dev/null +++ b/test/tests/whatnow2/default-workflow @@ -0,0 +1,53 @@ +#test whatnow2 workflow + +. "$MH_TEST_COMMON" +profile="$MMH/profile-send" +cd "$MMH" +cat "`mhparam profile`" - >"$profile" < +! +cd - >/dev/null +export MMHP="$profile" + +runandcheck "comp -editor cat -whatnowproc whatnow2" <`mhpath l +drafts` < +To: alice +Date: Sun, 25 Oct 2015 18:59:56 +0100 +Subject: Test +---------------- +foo +! + +runandcheck 'whatnow2 send -debug | replace_contentid' < +To: alice +Date: Sun, 25 Oct 2015 18:59:56 +0100 +Subject: Test +MIME-Version: 1.0 +Content-Type: text/plain; charset="us-ascii" +Content-ID: + +foo +----EOM---- +alice +! diff --git a/test/tests/whatnow2/metafile b/test/tests/whatnow2/metafile new file mode 100644 index 0000000..e91cc79 --- /dev/null +++ b/test/tests/whatnow2/metafile @@ -0,0 +1,60 @@ +#test whatnow2 workflow + +. "$MH_TEST_COMMON" +profile="$MMH/profile-send" +cd "$MMH" +cat "`mhparam profile`" - >"$profile" < +Metafile-Extension: .meta +! +cd - >/dev/null +export MMHP="$profile" + +runandcheck "comp -editor cat -whatnowproc whatnow2" <`mhpath l +drafts` < +To: alice +Date: Sun, 25 Oct 2015 18:59:56 +0100 +Subject: Test +---------------- +foo +! + +runandcheck 'whatnow2 send -debug | replace_contentid' < +To: alice +Date: Sun, 25 Oct 2015 18:59:56 +0100 +Subject: Test +MIME-Version: 1.0 +Content-Type: text/plain; charset="us-ascii" +Content-ID: + +foo +----EOM---- +alice +! diff --git a/uip/Makefile.in b/uip/Makefile.in index f037ec1..fcab14d 100644 --- a/uip/Makefile.in +++ b/uip/Makefile.in @@ -54,13 +54,13 @@ CMDS = ali anno burst comp dist flist folder forw mmh mark \ mhbuild mhl mhsign mhpgp \ mhlist mhmail mhparam mhpath mhstore new packf pick \ print-mimetype prompter rcvdist rcvpack rcvstore refile repl rmf \ - rmm send sendfiles show slocal sortm spost whatnow whom + rmm send sendfiles show slocal sortm spost whatnow whatnow2 whom # commands that are links to other commands LCMDS = flists folders next prev fnext fprev unseen scan # misc support binaries -MISC = ap dp fmtdump mhtest mmhwrap whatnow2 +MISC = ap dp fmtdump mhtest mmhwrap # commands with 'S'pecial installation needs SCMDS = inc diff --git a/uip/whatnow2.sh b/uip/whatnow2.sh index 91ff5a5..f9cf255 100755 --- a/uip/whatnow2.sh +++ b/uip/whatnow2.sh @@ -45,7 +45,7 @@ get_editor() { if [ -f "$mhmetafile" ] then - lasteditor=`anno -list -component 'last-editor' $mhmetafile` + lasteditor=`anno -list -component 'mmh-last-editor' "$mhmetafile"` if [ -n "$lasteditor" ] then editor=`echo $lasteditor | cut -d ' ' -f 1` @@ -63,6 +63,14 @@ get_editor() mheditor=`mhparam 'Editor'` } +save_config() +{ + component="$1" + newtext="$2" + anno -delete -number all -component "$component" "$mhmetafile" + anno -nodate -component "$component" -text "$newtext" "$mhmetafile" +} + get_showproc() { mhshowproc=`mhparam 'listproc'` @@ -78,50 +86,31 @@ get_realpath() cd "$OLDPWD" } -set_lasteditor() -{ - anno -delete -number all -component 'last-editor' $mhmetafile - anno -nodate -component 'last-editor' -text "$1" $mhmetafile -} - create() { if [ -z "$mhdraft" ] then usage 1 fi - mhmetafile=$mhdraft.meta - touch $mhmetafile + mhext=`mhparam Metafile-Extension` + mhmetafile="$mhdraft""$mhext" + touch "$mhmetafile" if [ -z "$mheditor" ] then get_editor fi if [ "$mhuse" -eq 1 ] then + exec $mheditor $mhdraft return fi - if [ -n "$mhaltmsg" ] - then - anno -nodate -component 'mhaltmsg' -text "$mhaltmsg" $mhmetafile - fi - if [ -n "$mhdist" ] - then - anno -nodate -component 'mhdist' -text "$mhdist" $mhmetafile - fi - if [ -n "$mhfolder" ] - then - anno -nodate -component 'mhfolder' -text "$mhfolder" $mhmetafile - fi - if [ -n "$mhmessages" ] - then - anno -nodate -component 'mhmessages' -text "$mhmessages" $mhmetafile - fi - if [ -n "$mhannotate" ] - then - anno -nodate -component 'mhannotate' -text "$mhannotate" $mhmetafile - fi - set_lasteditor "$mheditor" - exec $mheditor $mhdraft + save_config mmh-mhaltmsg "$mhaltmsg" + save_config mmh-mhdist "$mhdist" + save_config mmh-mhfolder "$mhfolder" + save_config mmh-mhmessages "$mhmessages" + save_config mmh-mhannotate "$mhannotate" + save_config mmh-last-editor "$mheditor" + exec $mheditor "$mhdraft" } edit() @@ -133,8 +122,8 @@ edit() mheditor="$@" fi - set_lasteditor "$mheditor" - exec $mheditor $mhdraft + save_config mmh-last-editor "$mheditor" + exec $mheditor "$mhdraft" } list() @@ -145,13 +134,23 @@ list() sendfunktion() { - export mhaltmsg=`anno -list -component 'mhaltmsg' "$mhmetafile"` - export mhdist=`anno -list -component 'mhdist' "$mhmetafile"` - export mhfolder=`anno -list -component 'mhfolder' "$mhmetafile"` - export mhmessages=`anno -list -component 'mhmessages' "$mhmetafile"` - export mhannotate=`anno -list -component 'mhannotate' "$mhmetafile"` + export mhaltmsg=`anno -list -component 'mmh-mhaltmsg' "$mhmetafile"` + export mhdist=`anno -list -component 'mmh-mhdist' "$mhmetafile"` + export mhfolder=`anno -list -component 'mmh-mhfolder' "$mhmetafile"` + export mhmessages=`anno -list -component 'mmh-mhmessages' "$mhmetafile"` + export mhannotate=`anno -list -component 'mmh-mhannotate' "$mhmetafile"` + tmp=`mktemp` + cp "$mhdraft" "$tmp" + mhl -form mhl.whatnow2 "$tmp" > "$mhdraft" + mhle="$?" + if [ "$mhle" -ne 0 ] + then + mv "$tmp" "$mhdraft" + exit "$mhle" + fi send "$@" "$mhdraft" || exit $? rm -f "$mhmetafile" + rm -f "$tmp" exit 0 } @@ -206,7 +205,7 @@ detach() display() { - mhaltmsg=`anno -list -component 'mhaltmsg' "$mhmetafile"` + mhaltmsg=`anno -list -component 'mmh-mhaltmsg' "$mhmetafile"` get_showproc if [ -z "$mhaltmsg" ] then @@ -243,7 +242,8 @@ then ;; esac fi -mhmetafile="$mhdraft".meta +mhext=`mhparam Metafile-Extension` +mhmetafile="$mhdraft""$mhext" touch "$mhmetafile" -- 1.7.10.4