1{ lib
2, stdenv
3, fetchFromGitHub
4, rustPlatform
5, pkg-config
6, openssl
7, installShellFiles
8, Security
9, curl
10}:
11
12rustPlatform.buildRustPackage rec {
13 pname = "sheldon";
14 version = "0.7.3";
15
16 src = fetchFromGitHub {
17 owner = "rossmacarthur";
18 repo = pname;
19 rev = version;
20 hash = "sha256-vGFR8NL3bOCUuNr0KQuAbjQMxvFbN/T9aVmf7Wxt9JU=";
21 };
22
23 cargoSha256 = "sha256-wVB+yL+h90f7NnASDaX5gxT5z45M8I1rxIJwY8uyB4k=";
24
25 buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security curl ];
26 nativeBuildInputs = [ installShellFiles pkg-config ];
27
28 # Needs network connection
29 checkFlags = [
30 "--skip lock::plugin::tests::external_plugin_lock_git_with_matches"
31 "--skip lock::plugin::tests::external_plugin_lock_git_with_matches_not_each"
32 "--skip lock::plugin::tests::external_plugin_lock_git_with_uses"
33 "--skip lock::plugin::tests::external_plugin_lock_remote"
34 "--skip lock::source::git::tests::git_checkout_resolve_branch"
35 "--skip lock::source::git::tests::git_checkout_resolve_rev"
36 "--skip lock::source::git::tests::git_checkout_resolve_tag"
37 "--skip lock::source::git::tests::lock_git_and_reinstall"
38 "--skip lock::source::git::tests::lock_git_https_with_checkout"
39 "--skip lock::source::local::tests::lock_local"
40 "--skip lock::source::remote::tests::lock_remote_and_reinstall"
41 "--skip lock::source::tests::lock_with_git"
42 "--skip lock::source::tests::lock_with_remote"
43 "--skip lock::tests::locked_config_clean"
44 "--skip directories_default"
45 "--skip directories_old"
46 "--skip directories_xdg_from_env"
47 "--skip lock_and_source_github"
48 "--skip lock_and_source_hooks"
49 "--skip lock_and_source_inline"
50 "--skip lock_and_source_profiles"
51 ];
52
53 postInstall = ''
54 installShellCompletion --cmd sheldon \
55 --bash <($out/bin/sheldon completions --shell bash) \
56 --zsh <($out/bin/sheldon completions --shell zsh)
57 '';
58
59 meta = with lib; {
60 description = "A fast and configurable shell plugin manager";
61 homepage = "https://github.com/rossmacarthur/sheldon";
62 license = with licenses; [ mit ];
63 maintainers = with maintainers; [ seqizz ];
64 platforms = platforms.linux;
65 };
66}