1{ lib, rustPlatform, fetchFromGitHub, stdenv, darwin }:
2
3rustPlatform.buildRustPackage rec {
4 pname = "cargo-modules";
5 version = "0.15.5";
6
7 src = fetchFromGitHub {
8 owner = "regexident";
9 repo = pname;
10 rev = "v${version}";
11 hash = "sha256-+jHanZ2/BIgNLUpMlibfUAVfA6QTPlavRci2YD1w3zE=";
12 };
13
14 cargoHash = "sha256-umaKVs1fFiUKz2HIJuB+7skSwRQbG12dl9eD+et42go=";
15
16 buildInputs = lib.optionals stdenv.isDarwin [
17 darwin.apple_sdk.frameworks.CoreServices
18 ];
19
20 checkFlags = [
21 "--skip=cfg_test::smoke"
22 "--skip=colors::ansi::smoke"
23 "--skip=colors::plain::smoke"
24 "--skip=colors::truecolor::smoke"
25 "--skip=focus_on::glob_path::smoke"
26 "--skip=focus_on::self_path::smoke"
27 "--skip=focus_on::simple_path::smoke"
28 "--skip=focus_on::use_tree::smoke"
29 "--skip=functions::function_body"
30 "--skip=functions::function_inputs"
31 "--skip=functions::function_outputs"
32 "--skip=max_depth::depth_2::smoke"
33 "--skip=selection::no_fns::smoke"
34 "--skip=selection::no_modules::smoke"
35 "--skip=selection::no_traits::smoke"
36 "--skip=selection::no_types::smoke"
37 "--skip=fields::enum_fields"
38 "--skip=fields::struct_fields"
39 "--skip=fields::tuple_fields"
40 "--skip=fields::union_fields"
41 ];
42
43 meta = with lib; {
44 description = "A cargo plugin for showing a tree-like overview of a crate's modules";
45 mainProgram = "cargo-modules";
46 homepage = "https://github.com/regexident/cargo-modules";
47 changelog = "https://github.com/regexident/cargo-modules/blob/${version}/CHANGELOG.md";
48 license = with licenses; [ mpl20 ];
49 maintainers = with maintainers; [ figsoda rvarago matthiasbeyer ];
50 };
51}