summary refs log tree commit diff
path: root/compat
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2024-10-22 23:17:33 +0200
committerMel <einebeere@gmail.com>2024-10-22 23:40:59 +0200
commitbb0e4c7b5bbec7b8d8e3433a87683e9bb5ec307a (patch)
tree87e0cf82dc573f9000dfb998326e504fa2e2a0d6 /compat
parent42d23c55e924b5100d5c357458f20de640db2400 (diff)
downloadminerals-bb0e4c7b5bbec7b8d8e3433a87683e9bb5ec307a.tar.zst
minerals-bb0e4c7b5bbec7b8d8e3433a87683e9bb5ec307a.zip
Add compatibility scripts for nixos-option and other legacy nix tools
Signed-off-by: Mel <einebeere@gmail.com>
Diffstat (limited to 'compat')
-rw-r--r--compat/default.nix20
-rw-r--r--compat/flake-compat.nix11
-rw-r--r--compat/nixos/default.nix13
3 files changed, 44 insertions, 0 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}