diff options
| author | Nathan Perry <np@npry.dev> | 2025-12-17 18:15:34 -0500 |
|---|---|---|
| committer | Nathan Perry <np@npry.dev> | 2025-12-17 18:51:00 -0500 |
| commit | 51fda9d1a1ea6553fe034f86c1fd667a159d5ae1 (patch) | |
| tree | 75ff89bd653d28a6b5a66de293cb0a4e967faffb /flake.nix | |
| parent | 3e75019fcd70f59403e51a275ee83184854b3266 (diff) | |
nix: update to 25.11, switch to crane
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 65 |
1 files changed, 23 insertions, 42 deletions
@@ -1,21 +1,14 @@ { inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; flake-utils.url = "github:numtide/flake-utils/main"; rust-overlay = { url = "github:oxalica/rust-overlay/master"; - - inputs = { - flake-utils.follows = "flake-utils"; - nixpkgs.follows = "nixpkgs"; - }; - }; - - naersk = { - url = "github:nmattia/naersk/master"; inputs.nixpkgs.follows = "nixpkgs"; }; + + crane.url = "github:ipetkov/crane"; }; description = "thulani discord bot"; @@ -26,7 +19,23 @@ flake-utils, ... } @ inputs: let - mkBuildToolchain = pkgs: pkgs.rust-bin.nightly."2024-05-01".minimal; + inherit (nixpkgs) lib; + mkBuildToolchain = pkgs: pkgs.rust-bin.nightly."2025-12-01".minimal; + + rustsrc = let + filter = with lib.fileset; unions [ + (maybeMissing ./.cargo/config.toml) + ./README.md + ./Cargo.lock + (fileFilter (file: file.hasExt "rs") ./.) + (fileFilter (file: file.hasExt "sql") ./.) + (fileFilter (file: file.hasExt "pest") ./.) + (fileFilter (file: file.name == "Cargo.toml") ./.) + ]; + in lib.fileset.toSource { + root = ./.; + fileset = filter; + }; deps = pkgs: with pkgs; [ openssl @@ -37,42 +46,14 @@ mkPkg = pkgs: let buildToolchain = mkBuildToolchain pkgs; - - naersk = pkgs.callPackage inputs.naersk { - cargo = buildToolchain; - rustc = buildToolchain; - }; + crane = (inputs.crane.mkLib pkgs).overrideToolchain mkBuildToolchain; inherit (pkgs) lib; - in naersk.buildPackage { - pname = "thulani"; - version = self.rev or "dirty"; - - src = lib.cleanSourceWith { - src = lib.cleanSource ./.; - - filter = path: ty: with builtins; with lib; let - baseName = baseNameOf "${path}"; - extMatch = match "((.*\\.?)*\\.)?(.*)" baseName; - extension = elemAt extMatch 2; - parent = baseNameOf (dirOf "${path}"); - isCargoFile = baseName == "Cargo.toml" || baseName == "Cargo.lock"; - isCargoConfig = parent == ".cargo" && baseName == "config.toml"; - in - ty == "directory" || - isCargoFile || - isCargoConfig || - extension == "rs" || - extension == "sql" || - extension == "pest"; - }; - - nativeBuildInputs = deps pkgs; - remapPathPrefix = true; + in pkgs.callPackage ./nix/package.nix { + inherit crane rustsrc; }; - in (flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { |
