From c826e376a8405792fd0602d448d99c3b459381e0 Mon Sep 17 00:00:00 2001 From: Matthieu Coudron Date: Wed, 30 Dec 2020 21:57:32 +0100 Subject: [PATCH] chore: use flake-utils to provide better support for different platforms. --- flake.lock | 42 ++++++++++++++++++++++++++++++++++++++++++ flake.nix | 50 +++++++++++++++++++++----------------------------- 2 files changed, 63 insertions(+), 29 deletions(-) create mode 100644 flake.lock diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..79cf6bf --- /dev/null +++ b/flake.lock @@ -0,0 +1,42 @@ +{ + "nodes": { + "flake-utils": { + "locked": { + "lastModified": 1609246779, + "narHash": "sha256-eq6ZXE/VWo3EMC65jmIT6H/rrUc9UWOWVujkzav025k=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "08c7ad4a0844adc4a7f9f5bb3beae482e789afa4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1609542771, + "narHash": "sha256-OcV1R1wnVDHFOzBib8tbPAbfDU5D3G6yIXV4Kr036XI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "014440d7105ce2be945b79dc957dd08720a9c029", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix index 2006a2d..5bf6ae0 100644 --- a/flake.nix +++ b/flake.nix @@ -1,37 +1,29 @@ { description = "Poetry2nix flake"; - outputs = { self, nixpkgs }: - let - # TODO: There must be a better way to provide arch-agnostic flakes.. - systems = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" ]; - forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f system); - # Memoize nixpkgs for different platforms for efficiency. - nixpkgsFor = forAllSystems ( - system: - import nixpkgs { - inherit system; - overlays = [ self.overlay ]; - } - ); - in + inputs.flake-utils.url = "github:numtide/flake-utils"; + inputs.nixpkgs.url = "github:NixOS/nixpkgs"; + + outputs = { self, nixpkgs, flake-utils }: { overlay = import ./overlay.nix; - - packages = forAllSystems (system: { - inherit (nixpkgsFor.${system}) poetry; - } - ); - - apps = forAllSystems (system: { - poetry = { - type = "app"; - program = self.packages."${system}".poetry + "/bin/poetry"; + } // (flake-utils.lib.eachDefaultSystem (system: + let + myNixpkgs = import nixpkgs { + inherit system; + overlays = [ self.overlay ]; }; - }); + in + rec { + packages = { + inherit (myNixpkgs) poetry; + }; + defaultPackage = packages.poetry; - defaultApp = forAllSystems (system: - self.apps."${system}".poetry - ); - }; + apps = { + poetry = flake-utils.lib.mkApp { drv = packages.poetry; }; + }; + + defaultApp = apps.poetry; + })); }