12 rustPlatform.buildRustPackage rec {
13 pname = "cargo-generate";
16 src = fetchFromGitHub {
17 owner = "cargo-generate";
18 repo = "cargo-generate";
20 sha256 = "sha256-oiXv6MbQpmWFi2cTN3a1Zx7Bjr0Y+f6/O+0FQNidbBg=";
23 cargoHash = "sha256-8yLGxydU7jjoG13I+h7qjtabcCxzjnEiE8tAbH56pp4=";
25 nativeBuildInputs = [ pkg-config ];
27 buildInputs = [ libgit2 openssl ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
28 darwin.apple_sdk.frameworks.Security
31 nativeCheckInputs = [ git ];
33 # disable vendored libgit2 and openssl
34 buildNoDefaultFeatures = true;
37 export HOME=$(mktemp -d) USER=nixbld
38 git config --global user.name Nixbld
39 git config --global user.email nixbld@localhost.localnet
42 # Exclude some tests that don't work in sandbox:
43 # - favorites_default_to_git_if_not_defined: requires network access to github.com
44 # - should_canonicalize: the test assumes that it will be called from the /Users/<project_dir>/ folder on darwin variant.
46 "--skip=favorites::favorites_default_to_git_if_not_defined"
47 "--skip=git_instead_of::should_read_the_instead_of_config_and_rewrite_an_git_at_url_to_https"
48 "--skip=git_instead_of::should_read_the_instead_of_config_and_rewrite_an_ssh_url_to_https"
49 "--skip=git_over_ssh::it_should_retrieve_the_private_key_from_ssh_agent"
50 "--skip=git_over_ssh::it_should_support_a_public_repo"
51 "--skip=git_over_ssh::it_should_use_a_ssh_key_provided_by_identity_argument"
52 ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
53 "--skip=git::utils::should_canonicalize"
57 LIBGIT2_NO_VENDOR = 1;
61 description = "Tool to generate a new Rust project by leveraging a pre-existing git repository as a template";
62 mainProgram = "cargo-generate";
63 homepage = "https://github.com/cargo-generate/cargo-generate";
64 changelog = "https://github.com/cargo-generate/cargo-generate/blob/v${version}/CHANGELOG.md";
65 license = with licenses; [ asl20 /* or */ mit ];
66 maintainers = with maintainers; [ figsoda turbomack matthiasbeyer ];