1
0
Fork 0
mirror of https://github.com/edolstra/flake-compat.git synced 2024-12-14 11:47:34 +00:00
No description
Find a file
Robert Hensing a220b6b7b9 Fix non-fetchTree pure-eval use of builtins.path
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`.
2024-12-04 12:23:16 +01:00
.github/workflows Doh 2023-10-02 19:19:56 +02:00
COPYING Add MIT license 2021-08-01 14:10:57 +02:00
default.nix Fix non-fetchTree pure-eval use of builtins.path 2024-12-04 12:23:16 +01:00
flake.nix Add description 2023-10-02 14:48:41 +02:00
README.md Return all outputs 2024-11-27 16:44:58 +01:00

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