tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
passky-desktop: 7.1.0 -> 8.1.1
Alessandro Barenghi
2 years ago
ede650b4
35502f30
+57
-46
1 changed file
expand all
collapse all
unified
split
pkgs
applications
misc
passky-desktop
default.nix
+57
-46
pkgs/applications/misc/passky-desktop/default.nix
···
1
1
-
{ lib, stdenv, fetchurl, appimageTools, undmg }:
1
1
+
{ lib
2
2
+
, stdenv
3
3
+
, fetchFromGitHub
4
4
+
, electron_22
5
5
+
, makeWrapper
6
6
+
, makeDesktopItem
7
7
+
, copyDesktopItems
8
8
+
}:
2
9
3
3
-
let
10
10
+
stdenv.mkDerivation rec {
4
11
pname = "passky-desktop";
5
5
-
version = "7.1.0";
12
12
+
version = "8.1.1";
6
13
7
7
-
srcs = {
8
8
-
x86_64-linux = fetchurl {
9
9
-
url = "https://github.com/Rabbit-Company/Passky-Desktop/releases/download/v${version}/Passky-${version}.AppImage";
10
10
-
sha256 = "1xnhrmmm018mmyzjq05mhbf673f0n81fh1k3kbfarbgk2kbwpq6y";
11
11
-
};
12
12
-
x86_64-darwin = fetchurl {
13
13
-
url = "https://github.com/Rabbit-Company/Passky-Desktop/releases/download/v${version}/Passky-${version}.dmg";
14
14
-
sha256 = "0mm7hk4v7zvpjdqyw3nhk33x72j0gh3f59bx3q18azlm4dr61r2d";
15
15
-
};
14
14
+
src = fetchFromGitHub {
15
15
+
owner = "Rabbit-Company";
16
16
+
repo = "Passky-Desktop";
17
17
+
rev = "refs/tags/v${version}";
18
18
+
sha256 = "1ma8s1bngjdzclcc4m5pcmavk38sidaskmz7dgfnv84y35si18dr";
16
19
};
17
17
-
src = srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
18
20
19
19
-
appimageContents = appimageTools.extract { inherit pname version src; };
20
20
-
meta = with lib; {
21
21
-
homepage = "https://passky.org";
22
22
-
downloadPage = "https://github.com/Rabbit-Company/Passky-Desktop/releases";
23
23
-
license = licenses.gpl3Only;
24
24
-
maintainers = with maintainers; [ akkesm ];
25
25
-
platforms = builtins.attrNames srcs;
26
26
-
};
21
21
+
nativeBuildInputs = [ makeWrapper copyDesktopItems ];
27
22
28
28
-
linux = appimageTools.wrapType2 {
29
29
-
inherit pname version src meta;
23
23
+
installPhase = ''
24
24
+
runHook preInstall
30
25
31
31
-
extraInstallCommands = ''
32
32
-
mv $out/bin/${pname}-${version} $out/bin/${pname}
26
26
+
mkdir -p $out/share/passky
27
27
+
cp -r "." "$out/share/passky/electron"
33
28
34
34
-
install -D ${appimageContents}/passky.desktop \
35
35
-
$out/share/applications/${pname}.desktop
29
29
+
local resolution
30
30
+
for icon in $out/share/passky/electron/images/icons/icon*.png; do
31
31
+
resolution=''${icon%".png"}
32
32
+
resolution=''${resolution##*/icon-}
33
33
+
mkdir -p "$out/share/icons/hicolor/''${resolution}/apps"
34
34
+
ln -s "$icon" "$out/share/icons/hicolor/''${resolution}/apps/passky.png"
35
35
+
done
36
36
37
37
-
substituteInPlace $out/share/applications/${pname}.desktop \
38
38
-
--replace 'Exec=AppRun' 'Exec=${pname}'
37
37
+
mkdir "$out/share/applications"
38
38
+
makeWrapper ${electron_22}/bin/electron "$out/bin/passky" \
39
39
+
--add-flags "$out/share/passky/electron/" \
40
40
+
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
39
41
40
40
-
cp -r ${appimageContents}/usr/share/icons $out/share
41
41
-
'';
42
42
-
};
42
42
+
runHook postInstall
43
43
+
'';
43
44
44
44
-
darwin = stdenv.mkDerivation {
45
45
-
inherit pname version src meta;
45
45
+
desktopItems = [
46
46
+
(
47
47
+
makeDesktopItem {
48
48
+
name = "Passky";
49
49
+
type = "Application";
50
50
+
desktopName = "passky";
51
51
+
comment = "Simple, modern, open source and secure password manager.";
52
52
+
icon = "passky";
53
53
+
exec = "passky %U";
54
54
+
categories = [ "Utility" ];
55
55
+
startupWMClass = "Passky";
56
56
+
}
57
57
+
)
58
58
+
];
46
59
47
47
-
nativeBuildInputs = [ undmg ];
48
48
-
49
49
-
sourceRoot = ".";
50
50
-
51
51
-
installPhase = ''
52
52
-
mkdir -p $out/Applications
53
53
-
cp -r *.app $out/Applications
54
54
-
'';
60
60
+
meta = with lib; {
61
61
+
description = "A simple, modern, lightweight, open source and secure password manager";
62
62
+
homepage = "https://passky.org";
63
63
+
downloadPage = "https://github.com/Rabbit-Company/Passky-Desktop/releases";
64
64
+
changelog = "https://github.com/Rabbit-Company/Passky-Desktop/releases/tag/v${version}";
65
65
+
license = licenses.gpl3Only;
66
66
+
maintainers = with maintainers; [ akkesm ];
67
67
+
mainProgram = "passky";
68
68
+
platforms = platforms.unix;
55
69
};
56
56
-
in
57
57
-
if stdenv.isDarwin
58
58
-
then darwin
59
59
-
else linux
70
70
+
}