summaryrefslogtreecommitdiff
path: root/inputs.nix
diff options
context:
space:
mode:
authorstuebinm2024-04-28 21:30:47 +0200
committerstuebinm2024-04-29 00:02:55 +0200
commit9e7a775e2578e126dddb1c6f7514874265e3d08e (patch)
tree68a72299d6c5ca706ee357fdbc73d8dd4ceef010 /inputs.nix
parent806593f53dde83f367fd9f6ee74a21aef97faf44 (diff)
yeet the nix flakes
this is, in the widest possible sense, a revert of e88fed18f499a3e8ac98c772bbb62f00d1f8d1d7, which was now a little over two years ago. Of course, lots of things have changed since then: - this uses npins instead of niv, which is both simpler and still maintained - i haven't brought back the old deploy lib; I still use deploy-rs (with some modifications) to deploy things - if you actually use my stuff downstream, you can now use packages/ & tests/ & modules/ as entry points directly, while still having some control over inputs - (since i also don't believe any downstream users actually exist, i've not bothered to have a shim flake.nix so your stuff probably just broke. well, it was an experimental feature, anyways) - in general there's a lot more of the old-fashioned structure back again, with default.nix files in subdirectories that form a structure, not like how almost everything was just imported in the one big flake.nix file For people who are interested in also having a non-flake config similar to this one, it's probably best to take a look at inputs.nix (and also at npins, of course)
Diffstat (limited to '')
-rw-r--r--inputs.nix53
1 files changed, 53 insertions, 0 deletions
diff --git a/inputs.nix b/inputs.nix
new file mode 100644
index 0000000..50c4deb
--- /dev/null
+++ b/inputs.nix
@@ -0,0 +1,53 @@
+{ system ? "x86_64-linux", sources ? import ./npins }:
+
+let
+
+ # some of my dependencies are only usable as flakes. this is just enough
+ # nonsense to import these
+ callFlake = name: inputs:
+ let
+ self = (import "${sources.${name}}/flake.nix").outputs
+ ({ inherit self; } // inputs);
+ in
+ self // { outPath = sources.${name}.outPath; };
+
+ inputs = sources // rec {
+
+ flake-utils = callFlake "flake-utils" { };
+
+ deploy-rs = callFlake "deploy-rs" {
+ # there's an implicit contract here that the module deploy-rs produces
+ # will not depend on the nixpkgs it is given, but that works out
+ inherit nixpkgs;
+ utils = flake-utils;
+ };
+
+ # both copies of nixpkgs get // { outPath = }'d, so that the nixPath
+ # override can use these paths.
+ nixpkgs = import sources.nixpkgs {
+ inherit system;
+ overlays = [
+ (import sources.rust-overlay)
+ deploy-rs.overlay
+ (import ./pkgs/overlay.nix { inherit inputs; })
+ ];
+ } // { outPath = sources.nixpkgs.outPath; };
+
+ nixpkgs-unstable =
+ import sources.nixpkgs-unstable { inherit system; }
+ // { outPath = sources.nixpkgs-unstable.outPath; };
+
+ # this absurd third copy only exists because non-flake nixpkgs does not
+ # as easily expose the evalConfig function ..
+ nixpkgs-flake =
+ (import "${sources.nixpkgs}/flake.nix").outputs { self = nixpkgs-flake; };
+
+ home-manager = callFlake "home-manager" { inherit nixpkgs; };
+
+ feeds = import /home/stuebinm/org/nonpublic.nix;
+
+ sops-nix = import "${sources.sops-nix}/modules/sops";
+
+ simple-nixos-mailserver = import sources.simple-nixos-mailserver;
+ };
+in inputs