From 72e4fd904da4132b852b520c2b1f954f2df4c807 Mon Sep 17 00:00:00 2001 From: DavHau Date: Tue, 17 Oct 2023 18:58:28 +0100 Subject: [PATCH] buildRustPackage: add example package --- .../rust-package-buildRustPackage/default.nix | 29 +++++++++++++++++++ .../dream2nix/buildRustPackage/default.nix | 3 ++ .../dream2nix/buildRustPackage/interface.nix | 12 ++++++++ 3 files changed, 44 insertions(+) create mode 100644 examples/packages/single-language/rust-package-buildRustPackage/default.nix create mode 100644 modules/dream2nix/buildRustPackage/interface.nix diff --git a/examples/packages/single-language/rust-package-buildRustPackage/default.nix b/examples/packages/single-language/rust-package-buildRustPackage/default.nix new file mode 100644 index 00000000..60b54140 --- /dev/null +++ b/examples/packages/single-language/rust-package-buildRustPackage/default.nix @@ -0,0 +1,29 @@ +{ + lib, + config, + dream2nix, + ... +}: { + imports = [ + dream2nix.modules.dream2nix.rust-cargo-lock + dream2nix.modules.dream2nix.buildRustPackage + ]; + + deps = {nixpkgs, ...}: { + inherit (nixpkgs) fetchFromGitHub; + }; + + name = lib.mkForce "ripgrep"; + version = lib.mkForce "13.0.0"; + + # options defined on top-level will be applied to the main derivation (the derivation that is exposed) + mkDerivation = { + # define the source root that contains the package we want to build. + src = config.deps.fetchFromGitHub { + owner = "BurntSushi"; + repo = "ripgrep"; + rev = config.version; + sha256 = "sha256-udEh+Re2PeO3DnX4fQThsaT1Y3MBHFfrX5Q5EN2XrF0="; + }; + }; +} diff --git a/modules/dream2nix/buildRustPackage/default.nix b/modules/dream2nix/buildRustPackage/default.nix index 34996474..53a34035 100644 --- a/modules/dream2nix/buildRustPackage/default.nix +++ b/modules/dream2nix/buildRustPackage/default.nix @@ -146,6 +146,7 @@ in { imports = [ dream2nix.modules.dream2nix.mkDerivation + ./interface.nix ]; package-func.func = config.deps.rustPlatform.buildRustPackage; @@ -158,12 +159,14 @@ in { deps = {nixpkgs, ...}: { inherit (nixpkgs) + cargo fetchurl jq moreutils python3Packages runCommandLocal rustPlatform + writeText ; inherit (nixpkgs.writers) diff --git a/modules/dream2nix/buildRustPackage/interface.nix b/modules/dream2nix/buildRustPackage/interface.nix new file mode 100644 index 00000000..6bcb5250 --- /dev/null +++ b/modules/dream2nix/buildRustPackage/interface.nix @@ -0,0 +1,12 @@ +{lib, ...}: { + options.deps = { + cargo = lib.mkOption { + type = lib.types.package; + description = "The cargo package to use"; + }; + writeText = lib.mkOption { + type = lib.types.raw; + description = "The function to use to write text to a file"; + }; + }; +}