Skip to content

nix-community/flake-compat

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 

Repository files navigation

flake-compat

This is a maintained fork of https://github.com/edolstra/flake-compat

Introduction

Nix Flakes: Using flakes project from a legacy Nix.

Usage

To use, add the following to your flake.nix:

inputs.flake-compat.url = "github:nix-community/flake-compat";

Example in a flake.nix file:

{
  description = "My first flake";

  inputs.nixpkgs.url = "nixpkgs/nixos-unstable";
  inputs.flake-compat.url = "github:nix-community/flake-compat";

  outputs = { self, nixpkgs, ... }:
    let
      eachSystem = f: nixpkgs.lib.genAttrs self.lib.supportedSystems (system: f nixpkgs.legacyPackages.${system});
    in
    {
      lib.supportedSystems = [
        "aarch64-darwin"
        "aarch64-linux"
        "x86_64-darwin"
        "x86_64-linux"
      ];

      devShells = eachSystem (pkgs: {
        default = pkgs.mkShell { buildInputs = [ pkgs.hello pkgs.cowsay ]; };
      });
    };
}

Update the flake.lock to include the hashes for flake-compat:

$ nix --extra-experimental-features "flakes nix-command" flake lock

You can say no to potential questions about adding additional substituters, public keys or other configuration, we just care about the updates to flake.lock here.

Afterwards, create a default.nix file containing the following:

# This file provides backward compatibility to nix < 2.4 clients
{ system ? builtins.currentSystem }:
let
  lock = builtins.fromJSON (builtins.readFile ./flake.lock);

  root = lock.nodes.${lock.root};
  inherit (lock.nodes.${root.inputs.flake-compat}.locked) owner repo rev narHash;

  flake-compat = fetchTarball {
    url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz";
    sha256 = narHash;
  };

  flake = import flake-compat { inherit system; src = ./.; };
in
flake.defaultNix

If you would like a shell.nix file, create one containing the above, replacing defaultNix with shellNix.

About

Community fork of flake-compat [maintainer=@zimbatm]

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published

Languages

  • Nix 100.0%