Now catches mymail errors.
[mymail.git] / mymail-vm.el
1
2 ;; Copyright (c) 2013 Francois Fleuret
3 ;; Written by Francois Fleuret <francois@fleuret.org>
4 ;;
5 ;; This file is part of mymail.
6 ;;
7 ;; mymail is free software: you can redistribute it and/or modify it
8 ;; under the terms of the GNU General Public License version 3 as
9 ;; published by the Free Software Foundation.
10 ;;
11 ;; mymail is distributed in the hope that it will be useful, but
12 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 ;; General Public License for more details.
15 ;;
16 ;; You should have received a copy of the GNU General Public License
17 ;; along with mymail.  If not, see <http://www.gnu.org/licenses/>.
18
19 (add-to-list 'recentf-exclude "/tmp/mymail-vm-.*\.mbox")
20
21 (defcustom mymail/default-search-request ""
22   "Default request to add to any search"
23   :type 'string)
24
25 (defun mymail/vm-visit-folder (param)
26   (interactive
27    (list (read-string "mymail: " nil 'mymail-vm-history)))
28
29   (let ((n 1)
30         (mbox-name nil)
31         (search-args
32          (apply 'nconc
33           (mapcar
34            (lambda (searche-request)
35              (if (not (string= searche-request ""))
36                  (list "-s" searche-request)))
37            (split-string (concat param "," mymail/default-search-request) ",")
38            ))))
39
40     (while (get-file-buffer (setq mbox-name (format "/tmp/mymail-vm-%d.mbox" n)))
41       (setq n (+ n 1)))
42
43     (if (= (apply 'call-process
44                   (nconc `("mymail" nil nil nil "--output" ,mbox-name)
45                           search-args))
46             0)
47         (vm-visit-folder mbox-name t)
48       (message "mymail failed"))
49
50     ;; (shell-command (concat "mymail --quiet --output " mbox-name " " args))
51     ;; (vm-visit-folder mbox-name t)
52   ))