bitwarden-directory-connector: init GUI at 2023.10.0

This commit is contained in:
Sandro Jäckel 2024-01-28 23:12:33 +01:00
parent 4feedd7957
commit be7065f673
No known key found for this signature in database
GPG key ID: 3AF5A43A3EECC2E5
3 changed files with 105 additions and 66 deletions

View file

@ -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";
};
}

View file

@ -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
'';
};
}

View file

@ -3577,6 +3577,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;