about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSandro <sandro.jaeckel@gmail.com>2024-02-09 12:02:03 +0100
committerGitHub <noreply@github.com>2024-02-09 12:02:03 +0100
commite34d597e14ad339d6a6e3ae3026f4575a9130d09 (patch)
tree5be85474ae51744ea30bae02eefa9e1af1049dbc
parent8a3e1cf40a6eaeb122c8321b97a0518cfa6ed779 (diff)
parentbe7065f6735466aaa83596423a9d7c2323093a58 (diff)
downloadnixlib-e34d597e14ad339d6a6e3ae3026f4575a9130d09.tar
nixlib-e34d597e14ad339d6a6e3ae3026f4575a9130d09.tar.gz
nixlib-e34d597e14ad339d6a6e3ae3026f4575a9130d09.tar.bz2
nixlib-e34d597e14ad339d6a6e3ae3026f4575a9130d09.tar.lz
nixlib-e34d597e14ad339d6a6e3ae3026f4575a9130d09.tar.xz
nixlib-e34d597e14ad339d6a6e3ae3026f4575a9130d09.tar.zst
nixlib-e34d597e14ad339d6a6e3ae3026f4575a9130d09.zip
Merge pull request #284623 from SuperSandro2000/bitwarden-directory-connector
bitwarden-directory-connector: init GUI at 2023.10.0
-rw-r--r--pkgs/by-name/bi/bitwarden-directory-connector-cli/package.nix66
-rw-r--r--pkgs/tools/security/bitwarden-directory-connector/default.nix103
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 105 insertions, 66 deletions
diff --git a/pkgs/by-name/bi/bitwarden-directory-connector-cli/package.nix b/pkgs/by-name/bi/bitwarden-directory-connector-cli/package.nix
deleted file mode 100644
index 24376014a120..000000000000
--- a/pkgs/by-name/bi/bitwarden-directory-connector-cli/package.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{
-  lib,
-  buildNpmPackage,
-  fetchFromGitHub,
-  buildPackages,
-  python3,
-  pkg-config,
-  libsecret,
-  nodejs_18,
-}:
-buildNpmPackage rec {
-  pname = "bitwarden-directory-connector-cli";
-  version = "2023.10.0";
-  nodejs = nodejs_18;
-
-  src = fetchFromGitHub {
-    owner = "bitwarden";
-    repo = "directory-connector";
-    rev = "v${version}";
-    hash = "sha256-PlOtTh+rpTxAv8ajHBDHZuL7yeeLVpbAfKEDPQlejIg=";
-  };
-
-  postPatch = ''
-    ${lib.getExe buildPackages.jq} 'del(.scripts.preinstall)' package.json > package.json.tmp
-    mv -f package.json{.tmp,}
-  '';
-
-  npmDepsHash = "sha256-jBAWWY12qeX2EDhUvT3TQpnQvYXRsIilRrXGpVzxYvw=";
-
-  env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
-
-  makeCacheWritable = true;
-  npmBuildScript = "build:cli:prod";
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/libexec/bitwarden-directory-connector
-    cp -R {build-cli,node_modules} $out/libexec/bitwarden-directory-connector
-    runHook postInstall
-  '';
-
-  # needs to be wrapped with nodejs so that it can be executed
-  postInstall = ''
-    chmod +x $out/libexec/bitwarden-directory-connector/build-cli/bwdc.js
-    mkdir -p $out/bin
-    ln -s $out/libexec/bitwarden-directory-connector/build-cli/bwdc.js $out/bin/bitwarden-directory-connector-cli
-  '';
-
-  buildInputs = [
-    libsecret
-  ];
-
-  nativeBuildInputs = [
-    python3
-    pkg-config
-  ];
-
-  meta = with lib; {
-    description = "LDAP connector for Bitwarden";
-    homepage = "https://github.com/bitwarden/directory-connector";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [Silver-Golden];
-    platforms = platforms.linux;
-    mainProgram = "bitwarden-directory-connector-cli";
-  };
-}
diff --git a/pkgs/tools/security/bitwarden-directory-connector/default.nix b/pkgs/tools/security/bitwarden-directory-connector/default.nix
new file mode 100644
index 000000000000..7f46b444b2e9
--- /dev/null
+++ b/pkgs/tools/security/bitwarden-directory-connector/default.nix
@@ -0,0 +1,103 @@
+{
+  lib,
+  buildNpmPackage,
+  electron,
+  fetchFromGitHub,
+  buildPackages,
+  python3,
+  pkg-config,
+  libsecret,
+  nodejs_18,
+}:
+
+let
+  common = { name, npmBuildScript, installPhase }: buildNpmPackage rec {
+    pname = name;
+    version = "2023.10.0";
+    nodejs = nodejs_18;
+
+    src = fetchFromGitHub {
+      owner = "bitwarden";
+      repo = "directory-connector";
+      rev = "v${version}";
+      hash = "sha256-PlOtTh+rpTxAv8ajHBDHZuL7yeeLVpbAfKEDPQlejIg=";
+    };
+
+    postPatch = ''
+      ${lib.getExe buildPackages.jq} 'del(.scripts.preinstall)' package.json > package.json.tmp
+      mv -f package.json{.tmp,}
+
+      substituteInPlace electron-builder.json \
+        --replace-fail '"afterSign": "scripts/notarize.js",' "" \
+        --replace-fail "AppImage" "dir"
+    '';
+
+    npmDepsHash = "sha256-jBAWWY12qeX2EDhUvT3TQpnQvYXRsIilRrXGpVzxYvw=";
+
+    env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
+
+    makeCacheWritable = true;
+    inherit npmBuildScript installPhase;
+
+    buildInputs = [
+      libsecret
+    ];
+
+    nativeBuildInputs = [
+      python3
+      pkg-config
+    ];
+
+    meta = with lib; {
+      description = "LDAP connector for Bitwarden";
+      homepage = "https://github.com/bitwarden/directory-connector";
+      license = licenses.gpl3Only;
+      maintainers = with maintainers; [ Silver-Golden SuperSandro2000 ];
+      platforms = platforms.linux;
+      mainProgram = name;
+    };
+  };
+in {
+  bitwarden-directory-connector = common {
+    name = "bitwarden-directory-connector";
+    npmBuildScript = "build:dist";
+    installPhase = ''
+      runHook preInstall
+
+      npm exec electron-builder -- \
+        --dir \
+        -c.electronDist=${electron}/libexec/electron \
+        -c.electronVersion=${electron.version} \
+        -c.npmRebuild=false
+
+      mkdir -p $out/share/bitwarden-directory-connector $out/bin
+      cp -r dist/*-unpacked/{locales,resources{,.pak}} $out/share/bitwarden-directory-connector
+
+      makeWrapper ${lib.getExe electron} $out/bin/bitwarden-directory-connector \
+        --add-flags $out/share/bitwarden-directory-connector/resources/app.asar \
+        --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
+        --set-default ELECTRON_IS_DEV 0 \
+        --inherit-argv0
+
+      runHook postInstall
+    '';
+  };
+
+  bitwarden-directory-connector-cli = common {
+    name = "bitwarden-directory-connector-cli";
+    npmBuildScript = "build:cli:prod";
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/libexec/bitwarden-directory-connector
+      cp -R build-cli node_modules $out/libexec/bitwarden-directory-connector
+
+      # needs to be wrapped with nodejs so that it can be executed
+      chmod +x $out/libexec/bitwarden-directory-connector/build-cli/bwdc.js
+      mkdir -p $out/bin
+      ln -s $out/libexec/bitwarden-directory-connector/build-cli/bwdc.js $out/bin/bitwarden-directory-connector-cli
+
+      runHook postInstall
+    '';
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 2c4fabbc52ef..1d54c8c5ba5e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3553,6 +3553,8 @@ with pkgs;
 
   bitwarden-cli = callPackage ../tools/security/bitwarden/cli.nix { };
 
+  inherit (callPackages ../tools/security/bitwarden-directory-connector { }) bitwarden-directory-connector-cli bitwarden-directory-connector;
+
   bitwarden-menu = python3Packages.callPackage ../applications/misc/bitwarden-menu { };
 
   inherit (nodePackages) concurrently;