From 1f73d3be9c6d22ab32a4aaf59e7700f38646f379 Mon Sep 17 00:00:00 2001 From: Nicolas Boisselier Date: Fri, 20 Feb 2015 13:26:18 +0000 Subject: [PATCH] nb-mails --- etc/bashrc.function | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/etc/bashrc.function b/etc/bashrc.function index 8cc10cb0..65f5c671 100644 --- a/etc/bashrc.function +++ b/etc/bashrc.function @@ -25,7 +25,32 @@ case "$OSTYPE" in darwin*) esac nb-mails() { - printf 'f *\nx\n' | mail | perl -e '@_=<>; shift @_; print shift @_; print reverse @_' +printf '| 1-$ cat\nx\n' | mail | perl -MDate::Manip -MEncode -MData::Dumper -ne ' +BEGIN { $SIG{__WARN__} = sub{ } } +$. == 2 and print; +/^From / .. /^$/ or next; +chomp; +if ($_ eq "") { + $h{From} =~ s/^.*?([^<\s]+@[^\s>]+).*?$/$1/; + $h{Date} = &UnixDate($h{Date},"%Y-%m-%d %H:%M"); + if (0) { + $h{Date} =~ s/\s+[\+\-].*$//; + $h{Date} =~ s/,//; + $h{Date} =~ s/ (\d) / 0$1 /g; + } + $h{Subject} = decode("MIME-Header",$h{Subject}); + push(@m,[ + $h{From}, + $h{Date}, + $h{Subject}, + ]); + %h = (); + next; +} +/^(Date|Subject|From): (.*)$/ and $h{$1} = $2; +END { for (reverse @m) { printf "%20.20s | %16.16s | %s\n",@$_; }} +' + #printf 'f *\nx\n' | mail | perl -e '@_=<>; shift @_; print shift @_; print reverse @_' } nb-git-create() { -- 2.47.3