diff --git a/pkgs/by-name/bi/bitwarden-desktop/firefox-native-messaging-host.json b/pkgs/by-name/bi/bitwarden-desktop/firefox-native-messaging-host.json new file mode 100644 index 0000000000000..e9f5f99319068 --- /dev/null +++ b/pkgs/by-name/bi/bitwarden-desktop/firefox-native-messaging-host.json @@ -0,0 +1,7 @@ +{ + "name": "com.8bit.bitwarden", + "description": "Bitwarden desktop <-> browser bridge", + "path": "@out@/bin/desktop_proxy", + "type": "stdio", + "allowed_extensions": ["{446900e4-71c2-419f-a6a7-df9c091e268b}"] +} diff --git a/pkgs/by-name/bi/bitwarden-desktop/package.nix b/pkgs/by-name/bi/bitwarden-desktop/package.nix index 5c0a43804cd6d..0215496b81a6a 100644 --- a/pkgs/by-name/bi/bitwarden-desktop/package.nix +++ b/pkgs/by-name/bi/bitwarden-desktop/package.nix @@ -115,6 +115,10 @@ buildNpmPackage rec { pushd apps/desktop/desktop_native/napi npm run build popd + + pushd apps/desktop/desktop_native/proxy + cargo build --bin desktop_proxy --release + popd ''; postBuild = '' @@ -154,7 +158,11 @@ buildNpmPackage rec { installPhase = '' runHook preInstall - mkdir $out + mkdir -p $out/bin + cp -r apps/desktop/desktop_native/target/release/desktop_proxy $out/bin + + mkdir -p $out/lib/mozilla/native-messaging-hosts + substituteAll ${./firefox-native-messaging-host.json} $out/lib/mozilla/native-messaging-hosts/com.8bit.bitwarden.json pushd apps/desktop/dist/linux-${lib.optionalString stdenv.hostPlatform.isAarch64 "arm64-"}unpacked mkdir -p $out/opt/Bitwarden