diff options
| author | Ahmed Abdelhalim <[email protected]> | 2026-02-22 03:04:59 +0100 |
|---|---|---|
| committer | Ahmed Abdelhalim <[email protected]> | 2026-02-22 03:04:59 +0100 |
| commit | 7b8b6a2af4adeba5b2005e449195c1f4e8a136c6 (patch) | |
| tree | 3b98b43f73ff504c7a9118b2ba12ef20fd617016 /roles/firefox/tasks/install-plugin-passff.yml | |
| parent | 8cc2cc696ec426c385f6955436ab3fa92d72acc7 (diff) | |
Refactor firefox role to use flatpak on debian
Diffstat (limited to 'roles/firefox/tasks/install-plugin-passff.yml')
| -rw-r--r-- | roles/firefox/tasks/install-plugin-passff.yml | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/roles/firefox/tasks/install-plugin-passff.yml b/roles/firefox/tasks/install-plugin-passff.yml new file mode 100644 index 00000000..00bb76eb --- /dev/null +++ b/roles/firefox/tasks/install-plugin-passff.yml @@ -0,0 +1,55 @@ +--- +# NOTE: This part of the role depends on +# - role: "curl" +# - role: "sed" +# - role: "python" +# - role: "bash" +# - role: "password_store" +# +# As it uses these tools to install and run passff. +# The curl, sed, bash are used for installation. +# Python is used to run the passff native messaging host. +# pass is required by passff to access the password store, and errors when not found. +- 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/passff.py" + 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 "$@" |
