gnus: conditional mail setup based on hostname
[~bandali/configs] / .emacs.d / lisp / bandali-gnus.el
index 6c8998a..5007abd 100644 (file)
 
  gnus-select-method '(nnnil "")
  gnus-secondary-select-methods
 
  gnus-select-method '(nnnil "")
  gnus-secondary-select-methods
- '((nnimap "shemshak"
-           (nnimap-stream plain)
-           (nnimap-address "127.0.0.1")
-           (nnimap-server-port 143)
-           (nnimap-authenticator plain)
-           (nnimap-user "bandali@shemshak.local"))
-   (nnimap "gnu"
-           (nnimap-stream plain)
-           (nnimap-address "127.0.0.1")
-           (nnimap-server-port 143)
-           (nnimap-authenticator plain)
-           (nnimap-user "bandali@gnu.local")
-           (nnimap-inbox "INBOX")
-           (nnimap-split-methods 'nnimap-split-fancy)
-           (nnimap-split-fancy (|
-                                ;; (: gnus-registry-split-fancy-with-parent)
-                                ;; (: gnus-group-split-fancy "INBOX" t "INBOX")
-                                ;; keep debbugs emails in INBOX
-                                (list ".*<\\(.*\\)\\.debbugs\\.gnu\\.org>.*" "INBOX")
-                                ;; list moderation emails
-                                (from ".+-\\(owner\\|bounces\\)@\\(non\\)?gnu\\.org" "listmod")
-                                ;; gnu
-                                (list ".*<\\(.*\\)\\.\\(non\\)?gnu\\.org>.*" "l.\\1")
-                                ;; gnus
-                                (list ".*<\\(.*\\)\\.gnus\\.org>.*" "l.\\1")
-                                ;; libreplanet
-                                (list ".*<\\(.*\\)\\.libreplanet\\.org>.*" "l.\\1")
-                                ;; iana (e.g. tz-announce)
-                                (list ".*<\\(.*\\)\\.iana\\.org>.*" "l.\\1")
-                                ;; haskell
-                                (list ".*<\\(.*\\)\\.haskell\\.org>.*" "l.\\1")
-                                ;; *.lists.sr.ht, omitting one dot if present
-                                ;;    add more \\.?\\([^.]*\\) if needed
-                                (list ".*<~\\(.*\\)/\\([^.]*\\)\\.?\\([^.]*\\)\\.lists\\.sr\\.ht>.*" "l.~\\1.\\2\\3")
-                                ;; webmasters
-                                (from "webmasters\\(-comment\\)?@gnu\\.org" "webmasters")
-                                ;; other
-                                ("subject" "nagios-fsf:.*" "nagios-fsf")
-                                (list ".*atreus.freelists.org" "l.atreus")
-                                (list ".*deepspec.lists.cs.princeton.edu" "l.deepspec")
-                                ;; (list ".*haskell-art.we.lurk.org" "l.haskell.art") ;d
-                                ;; (list ".*notmuch.notmuchmail.org" "l.notmuch") ;u
-                                (list ".*dev.lists.parabola.nu" "l.parabola-dev")
-                                ;; ----------------------------------
-                                ;; legend: (u)nsubscribed | (d)ead
-                                ;; ----------------------------------
-                                ;; spam
-                                ("X-Spam_action" "reject" "Junk")
-                                ;; otherwise, leave mail in INBOX
-                                "INBOX")))
-   (nnimap "uwaterloo"
-           (nnimap-stream plain)
-           (nnimap-address "127.0.0.1")
-           (nnimap-server-port 143)
-           (nnimap-authenticator plain)
-           (nnimap-user "abandali@uwaterloo.local")
-           (nnimap-inbox "INBOX")
-           (nnimap-split-methods 'nnimap-split-fancy)
-           (nnimap-split-fancy (|
-                                ;; (: gnus-registry-split-fancy-with-parent)
-                                ;; se212-f19
-                                ("subject" "SE\\s-?212" "course.se212-f19")
-                                (from "SE\\s-?212" "course.se212-f19")
-                                ;; catch-all
-                                "INBOX")))
-   (nnimap "csc"
-           (nnimap-stream plain)
-           (nnimap-address "127.0.0.1")
-           (nnimap-server-port 143)
-           (nnimap-authenticator plain)
-           (nnimap-user "abandali@csclub.uwaterloo.local")
-           (nnimap-inbox "INBOX")
-           (nnimap-split-methods 'nnimap-split-fancy)
-           (nnimap-split-fancy (|
-                                ;; cron reports and other messages from root
-                                (from "root@\\(.*\\.\\)?csclub\\.uwaterloo\\.ca" "INBOX")
-                                ;; spam
-                                ("X-Spam-Flag" "YES" "Junk")
-                                ;; catch-all
-                                "INBOX")))
-   (nnimap "sfl"
-           (nnimap-stream plain)
-           (nnimap-address "127.0.0.1")
-           (nnimap-server-port 143)
-           (nnimap-authenticator plain)
-           (nnimap-user "amin.bandali@savoirfairelinux.local")))
+ `(,@(cond
+      ((string= (system-name) "langa")
+       '((nnimap
+          "shemshak"
+          (nnimap-stream plain)
+          (nnimap-address "127.0.0.1")
+          (nnimap-server-port 143)
+          (nnimap-authenticator plain)
+          (nnimap-user "bandali@shemshak.local"))
+         (nnimap
+          "gnu"
+          (nnimap-stream plain)
+          (nnimap-address "127.0.0.1")
+          (nnimap-server-port 143)
+          (nnimap-authenticator plain)
+          (nnimap-user "bandali@gnu.local")
+          (nnimap-inbox "INBOX")
+          (nnimap-split-methods 'nnimap-split-fancy)
+          (nnimap-split-fancy
+           (|
+            ;; (: gnus-registry-split-fancy-with-parent)
+            ;; (: gnus-group-split-fancy "INBOX" t "INBOX")
+            ;; keep debbugs emails in INBOX
+            (list ".*<\\(.*\\)\\.debbugs\\.gnu\\.org>.*" "INBOX")
+            ;; list moderation emails
+            (from ".+-\\(owner\\|bounces\\)@\\(non\\)?gnu\\.org" "listmod")
+            ;; gnu
+            (list ".*<\\(.*\\)\\.\\(non\\)?gnu\\.org>.*" "l.\\1")
+            ;; gnus
+            (list ".*<\\(.*\\)\\.gnus\\.org>.*" "l.\\1")
+            ;; libreplanet
+            (list ".*<\\(.*\\)\\.libreplanet\\.org>.*" "l.\\1")
+            ;; iana (e.g. tz-announce)
+            (list ".*<\\(.*\\)\\.iana\\.org>.*" "l.\\1")
+            ;; haskell
+            (list ".*<\\(.*\\)\\.haskell\\.org>.*" "l.\\1")
+            ;; *.lists.sr.ht, omitting one dot if present
+            ;;    add more \\.?\\([^.]*\\) if needed
+            (list ".*<~\\(.*\\)/\\([^.]*\\)\\.?\\([^.]*\\)\\.lists\\.sr\\.ht>.*" "l.~\\1.\\2\\3")
+            ;; webmasters
+            (from "webmasters\\(-comment\\)?@gnu\\.org" "webmasters")
+            ;; other
+            ("subject" "nagios-fsf:.*" "nagios-fsf")
+            (list ".*atreus.freelists.org" "l.atreus")
+            (list ".*deepspec.lists.cs.princeton.edu" "l.deepspec")
+            ;; (list ".*haskell-art.we.lurk.org" "l.haskell.art") ;d
+            ;; (list ".*notmuch.notmuchmail.org" "l.notmuch") ;u
+            (list ".*dev.lists.parabola.nu" "l.parabola-dev")
+            ;; ----------------------------------
+            ;; legend: (u)nsubscribed | (d)ead
+            ;; ----------------------------------
+            ;; spam
+            ("X-Spam_action" "reject" "Junk")
+            ;; otherwise, leave mail in INBOX
+            "INBOX")))
+         (nnimap
+          "uwaterloo"
+          (nnimap-stream plain)
+          (nnimap-address "127.0.0.1")
+          (nnimap-server-port 143)
+          (nnimap-authenticator plain)
+          (nnimap-user "abandali@uwaterloo.local")
+          (nnimap-inbox "INBOX")
+          (nnimap-split-methods 'nnimap-split-fancy)
+          (nnimap-split-fancy
+           (|
+            ;; (: gnus-registry-split-fancy-with-parent)
+            ;; se212-f19
+            ("subject" "SE\\s-?212" "course.se212-f19")
+            (from "SE\\s-?212" "course.se212-f19")
+            ;; catch-all
+            "INBOX")))
+         (nnimap
+          "csc"
+          (nnimap-stream plain)
+          (nnimap-address "127.0.0.1")
+          (nnimap-server-port 143)
+          (nnimap-authenticator plain)
+          (nnimap-user "abandali@csclub.uwaterloo.local")
+          (nnimap-inbox "INBOX")
+          (nnimap-split-methods 'nnimap-split-fancy)
+          (nnimap-split-fancy
+           (|
+            ;; cron reports and other messages from root
+            (from "root@\\(.*\\.\\)?csclub\\.uwaterloo\\.ca" "INBOX")
+            ;; spam
+            ("X-Spam-Flag" "YES" "Junk")
+            ;; catch-all
+            "INBOX")))))
+      ((string= (system-name) "jirud")
+       '((nnimap
+         "sfl"
+         (nnimap-stream tls)
+         (nnimap-address "mail.savoirfairelinux.com")
+         (nnimap-user "amin.bandali"))))))
  gnus-message-archive-group "nnimap+gnu:INBOX"
  gnus-parameters
  '(("l\\.deepspec"
  gnus-message-archive-group "nnimap+gnu:INBOX"
  gnus-parameters
  '(("l\\.deepspec"
@@ -324,14 +333,18 @@ jami:bandali")
 (with-eval-after-load 'gnus-topic
   (csetq
    gnus-topic-line-format "%i[ %A: %(%{%n%}%) ]%v\n"
 (with-eval-after-load 'gnus-topic
   (csetq
    gnus-topic-line-format "%i[ %A: %(%{%n%}%) ]%v\n"
-   gnus-topic-topology '(("Gnus" visible nil nil)
-                         (("misc" visible nil nil))
-                         (("sfl" visible nil nil))
-                         (("csc" visible nil nil))
-                         (("uwaterloo" visible nil nil))
-                         (("shemshak" visible nil nil))
-                         (("gnu" visible nil nil))
-                         (("old-gnu" visible nil nil)))))
+   gnus-topic-topology
+   `(("Gnus" visible nil nil)
+     (("misc" visible nil nil))
+     ,@(cond
+        ((string= (system-name) "jirud")
+         '((("sfl" visible nil nil))))
+        ((string= (system-name) "langa")
+         '((("csc" visible nil nil))
+           (("uwaterloo" visible nil nil))
+           (("shemshak" visible nil nil))
+           (("gnu" visible nil nil))
+           (("old-gnu" visible nil nil))))))))
 
 (with-eval-after-load 'gnus-agent
   (csetq gnus-agent-synchronize-flags 'ask))
 
 (with-eval-after-load 'gnus-agent
   (csetq gnus-agent-synchronize-flags 'ask))