1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
installShellFiles,
nfs-utils ? null, # macOS doesn't need this
makeBinaryWrapper,
}:
let
inherit (stdenv.hostPlatform) isLinux;
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "lockbook";
version = "26.6.1";
src = fetchFromGitHub {
owner = "lockbook";
repo = "lockbook";
tag = finalAttrs.version;
hash = "sha256-+r5WsaqQr6NlQNWDTQf/tvCh6P5LpFFyyLMTIZw9yis=";
};
cargoHash = "sha256-ybAcG7sCEwZC6FxWx2KhHd1HkhK8wwkGeeLoI/KOXKU=";
doCheck = false; # there are no cli tests
cargoBuildFlags = [
"--package"
"lockbook"
];
nativeBuildInputs = [
installShellFiles
]
++ lib.optionals isLinux [ makeBinaryWrapper ];
postFixup = lib.optionalString isLinux ''
wrapProgram $out/bin/lockbook \
--prefix PATH : "${lib.makeBinPath [ nfs-utils ]}"
'';
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --bash --name lockbook.bash <($out/bin/lockbook completions bash)
installShellCompletion --zsh --name _lockbook <($out/bin/lockbook completions zsh)
installShellCompletion --fish --name lockbook.fish <($out/bin/lockbook completions fish)
'';
meta = {
description = "Private, polished note-taking platform";
longDescription = ''
Write notes, sketch ideas, and store files in one secure place.
Share seamlessly, keep data synced, and access it on any
platform—even offline. Lockbook encrypts files so even we
can’t see them, but don’t take our word for it:
Lockbook is 100% open-source.
'';
homepage = "https://lockbook.net";
license = lib.licenses.unlicense;
platforms = lib.platforms.all;
changelog = "https://github.com/lockbook/lockbook/releases";
maintainers = [ lib.maintainers.parth ];
};
})
|