aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/applications/misc/1password-gui/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/applications/misc/1password-gui/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/1password-gui/default.nix70
1 files changed, 70 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/1password-gui/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/1password-gui/default.nix
new file mode 100644
index 000000000000..924e006c4cc5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/1password-gui/default.nix
@@ -0,0 +1,70 @@
+{ lib, stdenv
+, fetchurl
+, appimageTools
+, makeWrapper
+, electron_11
+, openssl
+}:
+
+stdenv.mkDerivation rec {
+ pname = "1password";
+ version = "0.9.26";
+
+ src = fetchurl {
+ url = "https://onepassword.s3.amazonaws.com/linux/appimage/${pname}-${version}.AppImage";
+ hash = "sha256-LvHvWUS2iEm9m+v+kk7wf+P9xZkOyuoLk4xM4+P2vF8=";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ appimageContents = appimageTools.extractType2 {
+ name = "${pname}-${version}";
+ inherit src;
+ };
+
+ dontUnpack = true;
+ dontConfigure = true;
+ dontBuild = true;
+
+ installPhase = let
+ runtimeLibs = [
+ openssl.out
+ stdenv.cc.cc
+ ];
+ in ''
+ mkdir -p $out/bin $out/share/1password
+
+ # Applications files.
+ cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
+
+ # Desktop file.
+ install -Dt $out/share/applications ${appimageContents}/${pname}.desktop
+ substituteInPlace $out/share/applications/${pname}.desktop \
+ --replace 'Exec=AppRun' 'Exec=${pname}'
+
+ # Icons.
+ cp -a ${appimageContents}/usr/share/icons $out/share
+
+ # Wrap the application with Electron.
+ makeWrapper "${electron_11}/bin/electron" "$out/bin/${pname}" \
+ --add-flags "$out/share/${pname}/resources/app.asar" \
+ --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeLibs}"
+ '';
+
+ passthru.updateScript = ./update.sh;
+
+ meta = with lib; {
+ description = "Multi-platform password manager";
+ longDescription = ''
+ 1Password is a multi-platform package manager.
+
+ The Linux version is currently a development preview and can
+ only be used to search, view, and copy items. However items
+ cannot be created or edited.
+ '';
+ homepage = "https://1password.com/";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ danieldk timstott ];
+ platforms = [ "x86_64-linux" ];
+ };
+}