diff options
| author | Mel <einebeere@gmail.com> | 2024-10-22 23:17:33 +0200 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2024-10-22 23:40:59 +0200 |
| commit | bb0e4c7b5bbec7b8d8e3433a87683e9bb5ec307a (patch) | |
| tree | 87e0cf82dc573f9000dfb998326e504fa2e2a0d6 | |
| parent | 42d23c55e924b5100d5c357458f20de640db2400 (diff) | |
| download | minerals-bb0e4c7b5bbec7b8d8e3433a87683e9bb5ec307a.tar.zst minerals-bb0e4c7b5bbec7b8d8e3433a87683e9bb5ec307a.zip | |
Add compatibility scripts for nixos-option and other legacy nix tools
Signed-off-by: Mel <einebeere@gmail.com>
| -rw-r--r-- | compat/default.nix | 20 | ||||
| -rw-r--r-- | compat/flake-compat.nix | 11 | ||||
| -rw-r--r-- | compat/nixos/default.nix | 13 | ||||
| -rw-r--r-- | flake.lock | 16 | ||||
| -rw-r--r-- | flake.nix | 7 |
5 files changed, 66 insertions, 1 deletions
diff --git a/compat/default.nix b/compat/default.nix new file mode 100644 index 0000000..0077090 --- /dev/null +++ b/compat/default.nix @@ -0,0 +1,20 @@ +# compatability files for `nixos-option` and other legacy +# nix tools. +# +# `nixos-option` does not support flakes (as of yet), +# so we need to give it the path to `<nixpkgs>` (this file) +# and to `<nixos-config>` (in `./nixos/default.nix`) which +# then both return the correct outputs from the system flake. +# +# can also be useful for running out-of-tree `shell.nix` and `default.nix` +# files, without creating a custom flake for them and still having them +# get the correct package sets from the system flake configuration. +# +# see here: https://github.com/NixOS/nixpkgs/issues/97855#issuecomment-799925924 + +{ ... }: + +let + flake = import ./flake-compat.nix { src = ./..; }; +in +flake.defaultNix.legacyPackages.${builtins.currentSystem} diff --git a/compat/flake-compat.nix b/compat/flake-compat.nix new file mode 100644 index 0000000..ac56432 --- /dev/null +++ b/compat/flake-compat.nix @@ -0,0 +1,11 @@ +with builtins; +let + lock = fromJSON (readFile ../flake.lock); + + flake-compat = builtins.fetchGit (with lock.nodes.flake-compat.locked; { + inherit rev; + url = "https://github.com/${owner}/${repo}.git"; + }); + +in +{ src, ... }: import flake-compat { inherit src; } diff --git a/compat/nixos/default.nix b/compat/nixos/default.nix new file mode 100644 index 0000000..3d547c2 --- /dev/null +++ b/compat/nixos/default.nix @@ -0,0 +1,13 @@ +# this file provides the current nixos configuration +# taken from the system flake. +# see `../default.nix` for explanation. +{ nixpkgs ? import <nixpkgs> {}, ... }: + +with builtins; +let + me = with builtins; + nixpkgs.lib.toLower (head (split "\n" (readFile /etc/hostname))); + + flake = import ../flake-compat.nix { src = ./../..; }; +in +flake.defaultNix.nixosConfigurations.${me} diff --git a/flake.lock b/flake.lock index 0efe3b1..e20833c 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,20 @@ { "nodes": { + "flake-compat": { + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -55,6 +70,7 @@ }, "root": { "inputs": { + "flake-compat": "flake-compat", "home-manager": "home-manager", "nixpkgs": "nixpkgs", "nixpkgs-unstable": "nixpkgs-unstable" diff --git a/flake.nix b/flake.nix index 7075583..25e94d1 100644 --- a/flake.nix +++ b/flake.nix @@ -8,9 +8,11 @@ url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; }; + + flake-compat.url = "github:edolstra/flake-compat"; }; - outputs = inputs @ { self, nixpkgs, nixpkgs-unstable, home-manager }: + outputs = inputs @ { self, nixpkgs, nixpkgs-unstable, home-manager, ... }: let system = "x86_64-linux"; @@ -47,5 +49,8 @@ ]; } ); + + # compatibility wrapper for nixos-option + legacyPackages.${system} = with packageSets; pkgs.recurseIntoAttrs pkgs; }; } |
