You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
812 B
JavaScript

#!/usr/bin/env /usr/local/bin/node
const bitbar = require('bitbar');
const exec = require('child_process').exec;
let cmd = `/usr/local/bin/mu find flag:unread AND NOT flag:trashed AND \\(maildir:/Fastmail/INBOX OR maildir:/IOCOM/INBOX\\) --fields \"l f s\"`;
exec(cmd, function(error, stdout, stderr) {
let mails = stderr.match(/no matches/)
? []
: stdout.trim().split("\n").map(parseMailString);
bitbar([
':envelope: ' + mails.length || "",
bitbar.sep,
...mails
]);
});
function parseMailString(m) {
const MAX = 80;
let matches = m.match(/([^\s]+)\s(.*)/);
let filename = matches[1];
let text = matches[2].substring(0, MAX) + (matches[2].length > MAX ? "..." : "");
return {
text,
bash: "/usr/local/bin/emacsclient -n " + filename,
terminal: false
}
}