lol
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 installShellFiles,
6 rustPlatform,
7 nixosTests,
8 nix-update-script,
9}:
10
11rustPlatform.buildRustPackage (finalAttrs: {
12 pname = "atuin";
13 version = "18.8.0";
14
15 src = fetchFromGitHub {
16 owner = "atuinsh";
17 repo = "atuin";
18 tag = "v${finalAttrs.version}";
19 hash = "sha256-FJEXIxdeg6ExXvrQ3dtugMK5xw+NwWyB+ld9rj7okoU=";
20 };
21
22 cargoHash = "sha256-xJPSMu22Bq9Panrafsd5vUSnEQYuJB19OEZaAq8z0mw=";
23
24 # atuin's default features include 'check-updates', which do not make sense
25 # for distribution builds. List all other default features.
26 buildNoDefaultFeatures = true;
27 buildFeatures = [
28 "client"
29 "sync"
30 "server"
31 "clipboard"
32 "daemon"
33 ];
34
35 nativeBuildInputs = [ installShellFiles ];
36
37 postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
38 installShellCompletion --cmd atuin \
39 --bash <($out/bin/atuin gen-completions -s bash) \
40 --fish <($out/bin/atuin gen-completions -s fish) \
41 --zsh <($out/bin/atuin gen-completions -s zsh)
42 '';
43
44 passthru = {
45 tests = {
46 inherit (nixosTests) atuin;
47 };
48 updateScript = nix-update-script { };
49 };
50
51 checkFlags = [
52 # tries to make a network access
53 "--skip=registration"
54 # No such file or directory (os error 2)
55 "--skip=sync"
56 # PermissionDenied (Operation not permitted)
57 "--skip=change_password"
58 "--skip=multi_user_test"
59 "--skip=store::var::tests::build_vars"
60 # Tries to touch files
61 "--skip=build_aliases"
62 ];
63
64 meta = {
65 description = "Replacement for a shell history which records additional commands context with optional encrypted synchronization between machines";
66 homepage = "https://github.com/atuinsh/atuin";
67 license = lib.licenses.mit;
68 maintainers = with lib.maintainers; [
69 SuperSandro2000
70 sciencentistguy
71 _0x4A6F
72 rvdp
73 ];
74 mainProgram = "atuin";
75 };
76})