mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-04-15 00:37:53 +00:00
Merge pull request #284623 from SuperSandro2000/bitwarden-directory-connector
bitwarden-directory-connector: init GUI at 2023.10.0
This commit is contained in:
commit
e34d597e14
@ -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";
|
||||
};
|
||||
}
|
103
pkgs/tools/security/bitwarden-directory-connector/default.nix
Normal file
103
pkgs/tools/security/bitwarden-directory-connector/default.nix
Normal 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
|
||||
'';
|
||||
};
|
||||
}
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user