setup-cockpit/roles/neomutt/tasks/main.yml

107 lines
2.7 KiB
YAML

---
- name: Include vault variables
ansible.builtin.include_vars: vault.yml
- name: Install packages (Archlinux)
become: true
community.general.pacman:
name:
- neomutt
- isync
- lynx
- zathura
- zathura-pdf-mupdf
- urlscan
- mpv
- perl-file-mimeinfo
when: ansible_facts['distribution'] == 'Archlinux'
- name: Install packages (Debian)
become: true
ansible.builtin.apt:
name:
- neomutt
- isync
- lynx
- zathura
- urlscan
- mpv
- libfile-mimeinfo-perl
when: ansible_facts['distribution'] == 'Debian'
- name: Get installed neomutt version
# FIXME: when Debian gets ansible v.2.11, we can just use split
ansible.builtin.set_fact:
neomutt_version: "{{ lookup('pipe', 'neomutt -v') | regex_search('NeoMutt 20\\d{6}') | split | last }}"
when: ansible_facts['distribution'] != 'Debian'
- name: Set neomutt_version to 0 for Debian (change me later)
# FIXME: when Debian gets ansible v.2.11, we can just use split
ansible.builtin.set_fact:
neomutt_version: 0
when: ansible_facts['distribution'] == 'Debian'
- name: Create directories
ansible.builtin.file:
path: "{{ item }}"
state: directory
mode: 0755
with_items:
- ~/.config/neomutt
- ~/.config/neomutt/accounts
- ~/.cache/neomutt
- ~/.local/share/mail
- name: Create maildir directories
ansible.builtin.file:
path: "~/.local/share/mail/{{ item.fulladdress }}"
state: directory
mode: 0755
with_items: "{{ accounts }}"
- name: Copy account neomuttrc files
ansible.builtin.template:
src: account.neomuttrc.j2
dest: "~/.config/neomutt/accounts/{{ item.fulladdress }}.neomuttrc"
mode: 0644
vars:
account: "{{ item }}"
with_items: "{{ accounts }}"
- name: Template files
ansible.builtin.template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "{{ item.mode }}"
with_items:
- {'src': 'neomuttrc.j2', 'dest': '~/.config/neomutt/neomuttrc', 'mode': '0644'}
- {'src': 'mbsyncrc.j2', 'dest': '~/.mbsyncrc', 'mode': '0644'}
- name: Copy files
ansible.builtin.copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "{{ item.mode }}"
with_items:
- {'src': 'mailcap', 'dest': '~/.config/neomutt/mailcap', 'mode': '0644'}
- {'src': 'openfile', 'dest': '~/.local/bin/openfile', 'mode': '0755'}
- name: Copy mbsync service and timer
ansible.builtin.copy:
src: "{{ item }}"
dest: "~/.config/systemd/user/{{ item }}"
mode: 0644
with_items:
- mbsync.service
- mbsync.timer
notify: Reload user systemd
- name: Flush handlers
ansible.builtin.meta: flush_handlers
- name: Enable mbsync.timer
ansible.builtin.systemd:
name: mbsync.timer
enabled: true
state: started
scope: user