mirror of
https://github.com/edolstra/flake-compat.git
synced 2024-12-14 11:47:34 +00:00
No description
a220b6b7b9
This is a rare combination, and it would have been more relevant before https://github.com/edolstra/flake-compat/pull/67, but it is a tested fix nonetheless. (Specifically, for issues like https://github.com/hercules-ci/flake-parts/issues/252) builtins.path had `sha256` since its introduction, so no problem there. This also catches accidental path-based impurities. Flakes are meant to be pure. "path" inputs do ask for trouble, but that doesn't mean we should violate purity. Also note that `fetchTree` will happily use the `narHash` anyway, so this change makes the behavior more consistent between configurations with and without `fetchTree`. |
||
---|---|---|
.github/workflows | ||
COPYING | ||
default.nix | ||
flake.nix | ||
README.md |
flake-compat
Usage
To use, add the following to your flake.nix
:
inputs.flake-compat.url = "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz";
Afterwards, create a default.nix
file containing the following:
(import
(
let
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
nodeName = lock.nodes.root.inputs.flake-compat;
in
fetchTarball {
url = lock.nodes.${nodeName}.locked.url or "https://github.com/edolstra/flake-compat/archive/${lock.nodes.${nodeName}.locked.rev}.tar.gz";
sha256 = lock.nodes.${nodeName}.locked.narHash;
}
)
{ src = ./.; }
).defaultNix
If you would like a shell.nix
file, create one containing the above, replacing defaultNix
with shellNix
.
You can access any flake output via the outputs
attribute returned by flake-compat
, e.g.
(import ... { src = ./.; }).outputs.packages.x86_64-linux.default