summaryrefslogtreecommitdiffstats
path: root/roles/firefox/tasks/install_passff.yml
blob: 70f3f39763031fc216cd2ada9f2bb55a1d73702d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
---
- name: "Add passff to default extensions"
  ansible.builtin.set_fact:
    firefox_default_extensions: "{{ firefox_default_extensions | combine(firefox_passff_extension) }}"
  vars:
    firefox_passff_extension:
      "[email protected]":
        installation_mode: "force_installed"
        install_url: "https://addons.mozilla.org/firefox/downloads/latest/passff/latest.xpi"

- name: "Ensure passff native messaging host is installed"
  become: true
  ansible.builtin.shell: |
    set -euo pipefail
    curl -sSL https://codeberg.org/PassFF/passff-host/releases/download/latest/install_host_app.sh | bash -s -- firefox
  args:
    creates: "/usr/lib/mozilla/native-messaging-hosts/pro.invicem.passff.json"
    executable: "/bin/bash"

- name: "Create browserpass native messaging hosts file"
  become: true
  ansible.builtin.copy:
    dest: "/usr/lib/mozilla/native-messaging-hosts/passff.json"
    mode: "0644"
    content: |
      {
        "name": "passff",
        "description": "Host for communicating with zx2c4 pass",
        "path": "/usr/lib/mozilla/native-messaging-hosts/passff-wrapper",
        "type": "stdio",
        "allowed_extensions": [ "[email protected]" ]
      }

- name: "Create passff wrapper"
  become: true
  ansible.builtin.copy:
    dest: "/usr/lib/mozilla/native-messaging-hosts/passff-wrapper"
    mode: "0755"
    content: |
      #!/bin/sh
      # NOTE: this uses the dotfiles pinentry-wrapper which forces the usage of GUI pinentry in this case.
      # REF: https://git.sr.ht/~a14m/.rc/tree/94b355aa0ce648e3d41bfa7ef76611e3650523d2/item/.gnupg/pinentry-wrapper
      export PINENTRY_USER_DATA=gnome
      exec /usr/lib/mozilla/native-messaging-hosts/passff.py "$@"