From 5aae7edaf8e1a94794a1fcb207847ec8797c8f72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sun, 18 May 2025 11:02:33 +0200 Subject: [PATCH] feat: add nix-follows script --- flake.lock | 642 ++++++++++------------------------------------------- flake.nix | 168 ++++++++------ 2 files changed, 221 insertions(+), 589 deletions(-) diff --git a/flake.lock b/flake.lock index 5aac466..30b6e66 100644 --- a/flake.lock +++ b/flake.lock @@ -63,15 +63,19 @@ "nixpkgs" ], "sops-nix": "sops-nix", - "systems": "systems", - "treefmt-nix": "treefmt-nix" + "systems": [ + "systems" + ], + "treefmt-nix": [ + "treefmt-nix" + ] }, "locked": { - "lastModified": 1747450872, - "narHash": "sha256-T7TnLK4J8+Lz52mZMvMKOAxP5R7gbRaO5n+LrPlWZoA=", + "lastModified": 1747537306, + "narHash": "sha256-3MB5NtIYWI57mCgmUGZrHzqhfHwJAUdReS5bNVnuhxI=", "ref": "refs/heads/main", - "rev": "b27d6bb29bf03733c111e95585d5e09f13063d4c", - "revCount": 7004, + "rev": "7f62a7993a446bad3bfde5c71bee98067448d976", + "revCount": 7006, "type": "git", "url": "https://git.clan.lol/clan/clan-core" }, @@ -173,8 +177,12 @@ "inputs": { "crane": "crane", "fenix": "fenix", - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1740331452, @@ -191,23 +199,6 @@ } }, "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_2": { - "flake": false, "locked": { "lastModified": 1747046372, "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", @@ -222,59 +213,9 @@ "type": "github" } }, - "flake-compat_3": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_4": { - "flake": false, - "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_5": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, "flake-parts": { "inputs": { - "nixpkgs-lib": [ - "nixpkgs" - ] + "nixpkgs-lib": "nixpkgs-lib" }, "locked": { "lastModified": 1743550720, @@ -291,27 +232,6 @@ } }, "flake-parts_2": { - "inputs": { - "nixpkgs-lib": [ - "neovim-nightly-overlay", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1743550720, - "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "c621e8422220273271f52058f618c94e405bb0f5", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_3": { "inputs": { "nixpkgs-lib": [ "neovim-nightly-overlay", @@ -332,30 +252,11 @@ "type": "indirect" } }, - "flake-parts_4": { - "inputs": { - "nixpkgs-lib": [ - "nur", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733312601, - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, "flake-utils": { "inputs": { - "systems": "systems_2" + "systems": [ + "systems" + ] }, "locked": { "lastModified": 1731533236, @@ -373,25 +274,7 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_3" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_3": { - "inputs": { - "systems": "systems_4" + "systems": "systems" }, "locked": { "lastModified": 1731533236, @@ -423,66 +306,21 @@ } }, "git-hooks": { - "inputs": { - "flake-compat": "flake-compat_3", - "gitignore": "gitignore_2", - "nixpkgs": [ - "neovim-nightly-overlay", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1747372754, - "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "git-hooks-nix": { - "inputs": { - "flake-compat": "flake-compat", - "gitignore": "gitignore", - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1747372754, - "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "git-hooks_2": { "inputs": { "flake-compat": [ - "nixos-mailserver", "flake-compat" ], - "gitignore": "gitignore_3", + "gitignore": "gitignore", "nixpkgs": [ - "nixos-mailserver", "nixpkgs" ] }, "locked": { - "lastModified": 1742649964, - "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", + "lastModified": 1747372754, + "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", + "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", "type": "github" }, "original": { @@ -494,28 +332,6 @@ "gitignore": { "inputs": { "nixpkgs": [ - "git-hooks-nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "gitignore_2": { - "inputs": { - "nixpkgs": [ - "neovim-nightly-overlay", "git-hooks", "nixpkgs" ] @@ -534,52 +350,9 @@ "type": "github" } }, - "gitignore_3": { - "inputs": { - "nixpkgs": [ - "nixos-mailserver", - "git-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "gitignore_4": { - "inputs": { - "nixpkgs": [ - "pre-commit-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, "hercules-ci-effects": { "inputs": { - "flake-parts": "flake-parts_3", + "flake-parts": "flake-parts_2", "nixpkgs": [ "neovim-nightly-overlay", "nixpkgs" @@ -606,11 +379,11 @@ ] }, "locked": { - "lastModified": 1747439237, - "narHash": "sha256-5rCGrnkglKKj4cav1U3HC+SIUNJh08pqOK4spQv9RjA=", + "lastModified": 1747565775, + "narHash": "sha256-B6jmKHUEX1jxxcdoYHl7RVaeohtAVup8o3nuVkzkloA=", "owner": "nix-community", "repo": "home-manager", - "rev": "ae755329092c87369b9e9a1510a8cf1ce2b1c708", + "rev": "97118a310eb8e13bc1b9b12d67267e55b7bee6c8", "type": "github" }, "original": { @@ -665,7 +438,9 @@ "jovian": { "inputs": { "nix-github-actions": "nix-github-actions", - "nixpkgs": "nixpkgs_3" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1747466853, @@ -697,7 +472,9 @@ }, "lix-module": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": [ + "flake-utils" + ], "flakey-profile": "flakey-profile", "lix": "lix", "nixpkgs": [ @@ -709,7 +486,7 @@ "narHash": "sha256-11R4K3iAx4tLXjUs+hQ5K90JwDABD/XHhsM9nkeS5N8=", "rev": "cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc.tar.gz" + "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc.tar.gz?rev=cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc" }, "original": { "type": "tarball", @@ -718,11 +495,11 @@ }, "master": { "locked": { - "lastModified": 1747512611, - "narHash": "sha256-bFiHKpq7TYOuNumyEDDFjKVmEJOiya0EfADZl4jWWBc=", + "lastModified": 1747575265, + "narHash": "sha256-JSKMeKA3RDGBFlimwHl313vwsnNDfm2kg0xz6E1BUtU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "3cc678fad5bfefaefddf6392acce43e35c7a5363", + "rev": "8f5f0f0fa9df25b9dcc9be5413c394135e0965b4", "type": "github" }, "original": { @@ -755,20 +532,30 @@ }, "neovim-nightly-overlay": { "inputs": { - "flake-compat": "flake-compat_2", - "flake-parts": "flake-parts_2", - "git-hooks": "git-hooks", + "flake-compat": [ + "flake-compat" + ], + "flake-parts": [ + "flake-parts" + ], + "git-hooks": [ + "git-hooks" + ], "hercules-ci-effects": "hercules-ci-effects", "neovim-src": "neovim-src", - "nixpkgs": "nixpkgs_4", - "treefmt-nix": "treefmt-nix_2" + "nixpkgs": [ + "nixpkgs" + ], + "treefmt-nix": [ + "treefmt-nix" + ] }, "locked": { - "lastModified": 1747475604, - "narHash": "sha256-QQI3EaXwqTiWAz6JCV1rD9g7uJzkhOK8gQpawVznYEs=", + "lastModified": 1747554936, + "narHash": "sha256-LBFEVTt3JISA/HDHznJanvlNvKllNfILr1nfI8KZmVM=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "a389c17ddc7b05050c35f9c1cd6b58a5d2ef720c", + "rev": "5a732bf3edb47767a25c3b05436e4c21f91edf91", "type": "github" }, "original": { @@ -780,11 +567,11 @@ "neovim-src": { "flake": false, "locked": { - "lastModified": 1747473845, - "narHash": "sha256-jmjtmuIjIKuGWyNenamx6gaWPSVkD84TxngP6hX8Auc=", + "lastModified": 1747523215, + "narHash": "sha256-55RIMak4EwDaLdNTkM+4d3LjC90wlkNRaaG8DupK3AM=", "owner": "neovim", "repo": "neovim", - "rev": "8e8f4523c687cac4e966cb78856f73706dcec37d", + "rev": "5661f74ab2a6ef0c497ef2ea49bc58ea89b6ab6b", "type": "github" }, "original": { @@ -901,11 +688,11 @@ ] }, "locked": { - "lastModified": 1747470409, - "narHash": "sha256-R9TP2//BDKyjNzuZybplIZm7HQEnwL8khs7EmmTPYP4=", + "lastModified": 1747540584, + "narHash": "sha256-cxCQ413JTUuRv9Ygd8DABJ1D6kuB/nTfQqC0Lu9C0ls=", "owner": "Mic92", "repo": "nix-index-database", - "rev": "c1f63a0c3bf1b2fe05124ccb099333163e2184a7", + "rev": "ec179dd13fb7b4c6844f55be91436f7857226dce", "type": "github" }, "original": { @@ -965,8 +752,12 @@ "nixos-mailserver": { "inputs": { "blobs": "blobs", - "flake-compat": "flake-compat_4", - "git-hooks": "git-hooks_2", + "flake-compat": [ + "flake-compat" + ], + "git-hooks": [ + "git-hooks" + ], "nixpkgs": [ "nixpkgs" ], @@ -988,17 +779,18 @@ }, "nixpkgs": { "locked": { - "lastModified": 1736344531, - "narHash": "sha256-8YVQ9ZbSfuUk2bUf2KRj60NRraLPKPS0Q4QFTbc+c2c=", - "owner": "NixOS", + "lastModified": 1747467164, + "narHash": "sha256-JBXbjJ0t6T6BbVc9iPVquQI9XSXCGQJD8c8SgnUquus=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "bffc22eb12172e6db3c5dde9e3e5628f8e3e7912", + "rev": "3fcbdcfc707e0aa42c541b7743e05820472bdaec", "type": "github" }, "original": { - "id": "nixpkgs", - "ref": "nixos-unstable", - "type": "indirect" + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" } }, "nixpkgs-24_11": { @@ -1017,6 +809,21 @@ "type": "github" } }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1747530816, + "narHash": "sha256-GAwJUpq2pm9J0P6SVqzMBF5Gn6FmiLnBGfSd0v23Khc=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "59938251d4ed9d18fbb1462165897e50fac1492f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, "nixpkgs-stable": { "locked": { "lastModified": 1747335874, @@ -1033,118 +840,6 @@ "type": "github" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 1730768919, - "narHash": "sha256-8AKquNnnSaJRXZxc5YmF/WfmxiHX6MMZZasRP6RRQkE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a04d33c0c3f1a59a2c1cb0c6e34cd24500e5a1dc", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1744932701, - "narHash": "sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1747426788, - "narHash": "sha256-N4cp0asTsJCnRMFZ/k19V9akkxb7J/opG+K+jU57JGc=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "12a55407652e04dcf2309436eb06fef0d3713ef3", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { - "locked": { - "lastModified": 1747426788, - "narHash": "sha256-N4cp0asTsJCnRMFZ/k19V9akkxb7J/opG+K+jU57JGc=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "12a55407652e04dcf2309436eb06fef0d3713ef3", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_6": { - "locked": { - "lastModified": 1747327360, - "narHash": "sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4+wYK4=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "e06158e58f3adee28b139e9c2bcfcc41f8625b46", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_7": { - "locked": { - "lastModified": 1730768919, - "narHash": "sha256-8AKquNnnSaJRXZxc5YmF/WfmxiHX6MMZZasRP6RRQkE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a04d33c0c3f1a59a2c1cb0c6e34cd24500e5a1dc", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_8": { - "locked": { - "lastModified": 1692934111, - "narHash": "sha256-9EEE59v/esKNMR5zKbLRV9NoRPYvERw5jHQOnfr47bk=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1e44a037bbf4fcaba041436e65e87be88f3f495b", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixvim": { "inputs": { "flake-parts": [ @@ -1154,14 +849,16 @@ "nixpkgs" ], "nuschtosSearch": "nuschtosSearch", - "systems": "systems_5" + "systems": [ + "systems" + ] }, "locked": { - "lastModified": 1747449013, - "narHash": "sha256-GJn1RYCdCOhd4lMfGtrn2u+k6h2XnWFHpkyzlj+/pPw=", + "lastModified": 1747524500, + "narHash": "sha256-XC5jm9hZ3SUw+AD5ARcDVhizuRF2zYsCa34NO5lSuO8=", "owner": "nix-community", "repo": "nixvim", - "rev": "61c44d7a7fdb3d9ab1c36fdb6f16bffca01cb87d", + "rev": "5474f9a33f1d6a3d98eaea73c980e0c05af6849e", "type": "github" }, "original": { @@ -1172,16 +869,22 @@ }, "nur": { "inputs": { - "flake-parts": "flake-parts_4", - "nixpkgs": "nixpkgs_6", - "treefmt-nix": "treefmt-nix_3" + "flake-parts": [ + "flake-parts" + ], + "nixpkgs": [ + "nixpkgs" + ], + "treefmt-nix": [ + "treefmt-nix" + ] }, "locked": { - "lastModified": 1747511097, - "narHash": "sha256-ibdfp0rCF/OCzxSLPq6pNWtkvKlh94dN33LVx/TltTs=", + "lastModified": 1747571687, + "narHash": "sha256-HaoIJVxW1H37kvMiDcCx97el0R5B9yIBY5DJ+5eQylU=", "owner": "nix-community", "repo": "NUR", - "rev": "85ecf8590a4fc074cdee0aab548d29af3fe09d77", + "rev": "2c785032f3567da0c209858290431d5692c6269a", "type": "github" }, "original": { @@ -1192,7 +895,7 @@ }, "nuschtosSearch": { "inputs": { - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_2", "ixx": "ixx", "nixpkgs": [ "nixvim", @@ -1213,34 +916,16 @@ "type": "github" } }, - "pre-commit-hooks": { - "inputs": { - "flake-compat": "flake-compat_5", - "gitignore": "gitignore_4", - "nixpkgs": "nixpkgs_7" - }, - "locked": { - "lastModified": 1747372754, - "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, "root": { "inputs": { "arkenfox-userjs": "arkenfox-userjs", "asus-touchpad-numpad-driver": "asus-touchpad-numpad-driver", "clan-core": "clan-core", "filetags": "filetags", + "flake-compat": "flake-compat", "flake-parts": "flake-parts", - "git-hooks-nix": "git-hooks-nix", + "flake-utils": "flake-utils", + "git-hooks": "git-hooks", "home-manager": "home-manager", "impermanence": "impermanence", "jovian": "jovian", @@ -1251,12 +936,13 @@ "nix-index-database": "nix-index-database", "nix-monitored": "nix-monitored", "nixos-mailserver": "nixos-mailserver", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs", "nixvim": "nixvim", "nur": "nur", - "pre-commit-hooks": "pre-commit-hooks", "stable": "stable", + "systems": "systems_2", "timers": "timers", + "treefmt-nix": "treefmt-nix", "zola-theme": "zola-theme" } }, @@ -1359,55 +1045,12 @@ "type": "github" } }, - "systems_4": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_5": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_6": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "timers": { "inputs": { "naersk": "naersk", - "nixpkgs": "nixpkgs_8", + "nixpkgs": [ + "nixpkgs" + ], "utils": "utils" }, "locked": { @@ -1427,28 +1070,6 @@ "treefmt-nix": { "inputs": { "nixpkgs": [ - "clan-core", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1747417995, - "narHash": "sha256-3WY1yVTcS9Vi6vmBjWsNTG6IYDs/ybu2xAQykdeE22k=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "42dd9289571ae3c6884af9885b1a7432e3278f92", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "treefmt-nix_2": { - "inputs": { - "nixpkgs": [ - "neovim-nightly-overlay", "nixpkgs" ] }, @@ -1466,30 +1087,9 @@ "type": "github" } }, - "treefmt-nix_3": { - "inputs": { - "nixpkgs": [ - "nur", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733222881, - "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "49717b5af6f80172275d47a418c9719a31a78b53", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, "utils": { "inputs": { - "systems": "systems_6" + "systems": "systems_3" }, "locked": { "lastModified": 1692799911, diff --git a/flake.nix b/flake.nix index 1ca1f8e..cc23268 100644 --- a/flake.nix +++ b/flake.nix @@ -1,70 +1,4 @@ { - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; - master.url = "github:nixos/nixpkgs"; - stable.url = "github:nixos/nixpkgs/nixos-25.05"; - - # New flake-parts input - flake-parts.url = "github:hercules-ci/flake-parts"; - flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs"; - git-hooks-nix.url = "github:cachix/git-hooks.nix"; - - clan-core = { - url = "git+https://git.clan.lol/clan/clan-core"; - inputs.nixpkgs.follows = "nixpkgs"; # Needed if your configuration uses nixpkgs unstable. - inputs.flake-parts.follows = "flake-parts"; - }; - - lix-module.url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.0.tar.gz"; - lix-module.inputs.nixpkgs.follows = "nixpkgs"; - - nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver"; - nixos-mailserver.inputs.nixpkgs.follows = "nixpkgs"; - - home-manager.inputs.nixpkgs.follows = "nixpkgs"; - home-manager.url = "github:nix-community/home-manager"; - - impermanence.url = "github:nix-community/impermanence"; - - pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; - - nur.url = "github:nix-community/NUR"; - - nix-index-database.url = "github:Mic92/nix-index-database"; - nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; - - nix-monitored.url = "github:ners/nix-monitored"; - nix-monitored.inputs.nixpkgs.follows = "nixpkgs"; - - jovian.url = "github:Jovian-Experiments/Jovian-NixOS"; - - # Programs - timers.url = "git+https://gitea.moritzboeh.me/moritz/timers.git"; - filetags.url = "git+https://gitea.moritzboeh.me/moritz/filetags.git"; - - # Neovim - neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; - - nixvim.url = "github:nix-community/nixvim"; - nixvim.inputs.flake-parts.follows = "flake-parts"; - nixvim.inputs.nixpkgs.follows = "nixpkgs"; - - # Niri - niri.url = "github:sodiboo/niri-flake"; - niri.inputs.nixpkgs.follows = "nixpkgs"; - - # Laptop - asus-touchpad-numpad-driver.url = "github:MoritzBoehme/asus-touchpad-numpad-driver/german-layout"; - asus-touchpad-numpad-driver.flake = false; - - # Firefox user.js - arkenfox-userjs.url = "github:arkenfox/user.js"; - arkenfox-userjs.flake = false; - - zola-theme.url = "github:Speyll/anemone"; - zola-theme.flake = false; - }; - outputs = inputs @ {flake-parts, ...}: flake-parts.lib.mkFlake {inherit inputs;} ({self, ...}: { # We define our own systems below. you can still use this to add system specific outputs to your flake. @@ -74,7 +8,7 @@ # import clan-core modules imports = [ inputs.clan-core.flakeModules.default - inputs.git-hooks-nix.flakeModule + inputs.git-hooks.flakeModule ./clanServices/flake-module.nix ]; @@ -87,7 +21,26 @@ devShells = rec { default = pkgs.mkShell { inherit (config.pre-commit.devShell) shellHook nativeBuildInputs; - packages = [inputs'.clan-core.packages.clan-cli pkgs.alejandra]; + packages = [ + inputs'.clan-core.packages.clan-cli + pkgs.alejandra + (pkgs.writeShellApplication { + name = "nix-follows"; + text = '' + nix flake metadata --json | jq -r '(.locks.nodes.root.inputs | keys) as $root_input_keys + | .locks.nodes | to_entries[] + | select(.key | IN($root_input_keys[])) + | select((.value | has("flake") | not) or (.value.flake == true)) + | select(.value | has("inputs")) + | .key as $parent_key + | .value.inputs | keys[] + | select(IN($root_input_keys[])) + | {"key": $parent_key, "value": .} + | .key + ".inputs." + .value + ".follows = \"" + .value + "\";"' + ''; + runtimeInputs = [pkgs.jq]; + }) + ]; }; zola = let theme = inputs.zola-theme; @@ -143,4 +96,83 @@ }; }; }); + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; + master.url = "github:nixos/nixpkgs"; + stable.url = "github:nixos/nixpkgs/nixos-25.05"; + + # New flake-parts input + flake-parts.url = "github:hercules-ci/flake-parts"; + + clan-core.url = "git+https://git.clan.lol/clan/clan-core"; + clan-core.inputs.nixpkgs.follows = "nixpkgs"; # Needed if your configuration uses nixpkgs unstable. + + flake-utils.url = "github:numtide/flake-utils"; + git-hooks.url = "github:cachix/git-hooks.nix"; + home-manager.url = "github:nix-community/home-manager"; + impermanence.url = "github:nix-community/impermanence"; + jovian.url = "github:Jovian-Experiments/Jovian-NixOS"; + lix-module.url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.0.tar.gz"; + nix-index-database.url = "github:Mic92/nix-index-database"; + nix-monitored.url = "github:ners/nix-monitored"; + nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver"; + nur.url = "github:nix-community/NUR"; + treefmt-nix.url = "github:numtide/treefmt-nix"; + flake-compat.url = "github:edolstra/flake-compat"; + niri.url = "github:sodiboo/niri-flake"; + systems.url = "github:nix-systems/default"; + + # Programs + timers.url = "git+https://gitea.moritzboeh.me/moritz/timers.git"; + filetags.url = "git+https://gitea.moritzboeh.me/moritz/filetags.git"; + + # Neovim + neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; + nixvim.url = "github:nix-community/nixvim"; + + # Laptop + asus-touchpad-numpad-driver.url = "github:MoritzBoehme/asus-touchpad-numpad-driver/german-layout"; + asus-touchpad-numpad-driver.flake = false; + + # Firefox user.js + arkenfox-userjs.url = "github:arkenfox/user.js"; + arkenfox-userjs.flake = false; + + zola-theme.url = "github:Speyll/anemone"; + zola-theme.flake = false; + + # NOTE: create follows statements with nix-follows + clan-core.inputs.flake-parts.follows = "flake-parts"; + clan-core.inputs.systems.follows = "systems"; + clan-core.inputs.treefmt-nix.follows = "treefmt-nix"; + filetags.inputs.flake-utils.follows = "flake-utils"; + filetags.inputs.nixpkgs.follows = "nixpkgs"; + flake-utils.inputs.systems.follows = "systems"; + git-hooks.inputs.flake-compat.follows = "flake-compat"; + git-hooks.inputs.nixpkgs.follows = "nixpkgs"; + home-manager.inputs.nixpkgs.follows = "nixpkgs"; + jovian.inputs.nixpkgs.follows = "nixpkgs"; + lix-module.inputs.flake-utils.follows = "flake-utils"; + lix-module.inputs.nixpkgs.follows = "nixpkgs"; + neovim-nightly-overlay.inputs.flake-compat.follows = "flake-compat"; + neovim-nightly-overlay.inputs.flake-parts.follows = "flake-parts"; + neovim-nightly-overlay.inputs.git-hooks.follows = "git-hooks"; + neovim-nightly-overlay.inputs.nixpkgs.follows = "nixpkgs"; + neovim-nightly-overlay.inputs.treefmt-nix.follows = "treefmt-nix"; + niri.inputs.nixpkgs.follows = "nixpkgs"; + nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; + nix-monitored.inputs.nixpkgs.follows = "nixpkgs"; + nixos-mailserver.inputs.flake-compat.follows = "flake-compat"; + nixos-mailserver.inputs.git-hooks.follows = "git-hooks"; + nixos-mailserver.inputs.nixpkgs.follows = "nixpkgs"; + nixvim.inputs.flake-parts.follows = "flake-parts"; + nixvim.inputs.nixpkgs.follows = "nixpkgs"; + nixvim.inputs.systems.follows = "systems"; + nur.inputs.flake-parts.follows = "flake-parts"; + nur.inputs.nixpkgs.follows = "nixpkgs"; + nur.inputs.treefmt-nix.follows = "treefmt-nix"; + timers.inputs.nixpkgs.follows = "nixpkgs"; + treefmt-nix.inputs.nixpkgs.follows = "nixpkgs"; + }; }