chore: use flake-utils

to provide better support for different platforms.
This commit is contained in:
Matthieu Coudron 2020-12-30 21:57:32 +01:00
parent 797970c69d
commit c826e376a8
2 changed files with 63 additions and 29 deletions

42
flake.lock generated Normal file
View file

@ -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
}

View file

@ -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;
}));
}