anmhi-scan - anmhi - nmh(7) interface that (ab)uses less, lesskey, tmux and entr
(HTM) hg clone https://bitbucket.org/iamleot/anmhi
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
---
anmhi-scan
---
1 #!/bin/sh
2
3 #
4 # Copyright (c) 2018 Leonardo Taccari
5 # All rights reserved.
6 #
7 # Redistribution and use in source and binary forms, with or without
8 # modification, are permitted provided that the following conditions
9 # are met:
10 #
11 # 1. Redistributions of source code must retain the above copyright
12 # notice, this list of conditions and the following disclaimer.
13 # 2. Redistributions in binary form must reproduce the above copyright
14 # notice, this list of conditions and the following disclaimer in the
15 # documentation and/or other materials provided with the distribution.
16 #
17 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19 # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
21 # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 # POSSIBILITY OF SUCH DAMAGE.
28 #
29
30
31 anmhi_scan_lines=$(stty size | cut -d ' ' -f 1)
32 anmhi_scan_context="$(mhpath +)/$(mhparam context)"
33 anmhi_scan_format="\
34 %<(cur)%<(zputlit(underline))%>%>\
35 %<(unseen)%<(zputlit(bold))%>%>\
36 %<{status} %|N%>\
37 %<{replied}R%?{encrypted}E%| %>\
38 %6(msg) \
39 %<(mymbox{from})%<{to}To: %13(unquote(decode(friendly{to})))%>%>\
40 %<(zero)%17(unquote(decode(friendly{from})))%> \
41 %3(day{date}) %3(month{date}) %02(mday{date}) \
42 %02(hour{date}):%02(min{date}) \
43 %(decode{subject})%(zputlit(resetterm))"
44
45
46 #
47 # Monitor context and mh-sequences files and continuosly update the screen when
48 # they change.
49 #
50 ls "${anmhi_scan_context}" "$(mhpath +)"/*/"$(mhparam mh-sequences)" | \
51 entr -c sh -c \
52 '
53 # Print current folder and (unread/total) messages
54 flist | awk \
55 '"'"'
56 {
57 sub(/\+$/, "", $1);
58 printf("\033[1m%s (%d/%d)\033[0m\n", $1, $3, $9);
59 }
60 '"'"'
61
62 # Print "current" emails
63 scan -format '"\"${anmhi_scan_format}\""' \
64 cur:-$(('"${anmhi_scan_lines}"' / 2)) \
65 cur:$(('"${anmhi_scan_lines}"' / 2 - 1))
66 ' \
67 "anmhi-scan" /_