# flake-compat ## Usage To use, add the following to your `flake.nix`: ```nix inputs.flake-compat = { url = github:edolstra/flake-compat; flake = false; }; ``` Example in a `flake.nix` file: ```nix { description = "My first flake"; inputs.nixpkgs.url = "nixpkgs/nixos-unstable"; inputs.flake-utils.url = "github:numtide/flake-utils"; inputs.flake-compat = { url = "github:edolstra/flake-compat"; flake = false; }; outputs = { self, nixpkgs, flake-utils, flake-compat }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; in { devShell = pkgs.mkShell { buildInputs = [ pkgs.hello pkgs.cowsay ]; }; } ); } ``` Afterwards, create a `default.nix` file containing the following: ```nix (import ( let lock = builtins.fromJSON (builtins.readFile ./flake.lock); in fetchTarball { url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz"; sha256 = lock.nodes.flake-compat.locked.narHash; } ) { src = ./.; } ).defaultNix ``` If you would like a `shell.nix` file, create one containing the above, replacing `defaultNix` with `shellNix`.