From 951ef7f7777e0074ba16fc2b8fca99d1e06c1141 Mon Sep 17 00:00:00 2001 From: Bill Ewanick Date: Sat, 3 Jan 2026 20:46:01 -0500 Subject: [PATCH] Switch to flake.parts --- flake.lock | 642 +++-------------------------------------------------- flake.nix | 170 +++++++++++--- 2 files changed, 166 insertions(+), 646 deletions(-) diff --git a/flake.lock b/flake.lock index 2623732..dec88d9 100644 --- a/flake.lock +++ b/flake.lock @@ -1,211 +1,17 @@ { "nodes": { - "commonmark-simple": { - "flake": false, - "locked": { - "lastModified": 1705078713, - "narHash": "sha256-YgDHJG8M47ZXGLWu8o7MhXbIrgQ0Ai32Gr8nKvZGGw8=", - "owner": "srid", - "repo": "commonmark-simple", - "rev": "fc106c94f781f6a35ef66900880edc08cbe3b034", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "commonmark-simple", - "type": "github" - } - }, - "commonmark-simple_2": { - "flake": false, - "locked": { - "lastModified": 1742576519, - "narHash": "sha256-/Vauu9JiLcJOElH/brswcF1XbEXq8yA2q/8rcXzj+kE=", - "owner": "srid", - "repo": "commonmark-simple", - "rev": "1d69703c7f625905a84cfb79983ca2a5817743bc", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "commonmark-simple", - "type": "github" - } - }, - "commonmark-wikilink": { - "flake": false, - "locked": { - "lastModified": 1738248145, - "narHash": "sha256-UN2Nh+uf+DzM336Ojzr6YZV4RJy8BPx9Q5GZpax3wt0=", - "owner": "srid", - "repo": "commonmark-wikilink", - "rev": "1d7aa327fb33b41f3c4899d5b29aa122780c900f", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "commonmark-wikilink", - "type": "github" - } - }, - "devshell": { - "inputs": { - "nixpkgs": "nixpkgs_3" - }, - "locked": { - "lastModified": 1741473158, - "narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=", - "owner": "numtide", - "repo": "devshell", - "rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "devshell", - "type": "github" - } - }, - "ema": { - "inputs": { - "flake-parts": [ - "emanote", - "flake-parts" - ], - "flake-root": [ - "emanote", - "flake-root" - ], - "haskell-flake": [ - "emanote", - "haskell-flake" - ], - "nixpkgs": [ - "emanote", - "nixpkgs" - ], - "treefmt-nix": [ - "emanote", - "treefmt-nix" - ] - }, - "locked": { - "lastModified": 1702334080, - "narHash": "sha256-zrtzyLrSORxtocLMji5U9p4pDicMulOqgsuiB4LCu1o=", - "owner": "srid", - "repo": "ema", - "rev": "33f4cf31ace7e612e78ad25f5fc45089745ab644", - "type": "github" - }, - "original": { - "owner": "srid", - "ref": "no-ws", - "repo": "ema", - "type": "github" - } - }, - "ema_2": { - "flake": false, - "locked": { - "lastModified": 1745123527, - "narHash": "sha256-FD6GJaiiKkH65N7iDjHtOtaEcWMf1P/t98kktILSkcg=", - "owner": "srid", - "repo": "ema", - "rev": "8590cc91e1f3dc3e10409d914c40a484645a2680", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "ema", - "type": "github" - } - }, - "emanote": { - "inputs": { - "commonmark-simple": "commonmark-simple", - "ema": "ema", - "emanote-template": [], - "flake-parts": "flake-parts", - "flake-root": "flake-root", - "haskell-flake": "haskell-flake", - "heist-extra": "heist-extra", - "nixpkgs": "nixpkgs", - "systems": "systems", - "treefmt-nix": "treefmt-nix", - "unionmount": "unionmount" - }, - "locked": { - "lastModified": 1705141168, - "narHash": "sha256-uz6LGgOPuAGrVtPOlcEpgiSMA0Cp5G/uK3UwPhGP/AE=", - "owner": "srid", - "repo": "emanote", - "rev": "7e4b27223d299ad325f685c63fa0f267fe2d8a00", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "emanote", - "type": "github" - } - }, - "emanote-template": { - "flake": false, - "locked": { - "lastModified": 1745726040, - "narHash": "sha256-cLL9ylGe1OoN/KSX7+FRW3j8rm5iPTCleOJGSdOfdE0=", - "owner": "srid", - "repo": "emanote-template", - "rev": "1475b182fc136fc5da3a3b3e2b9be90795af19bb", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "emanote-template", - "type": "github" - } - }, - "emanote_2": { - "inputs": { - "commonmark-simple": "commonmark-simple_2", - "commonmark-wikilink": "commonmark-wikilink", - "ema": "ema_2", - "emanote-template": "emanote-template", - "flake-parts": "flake-parts_2", - "flake-root": "flake-root_2", - "haskell-flake": "haskell-flake_2", - "heist-extra": "heist-extra_2", - "lvar": "lvar", - "nixos-unified": "nixos-unified", - "nixpkgs": "nixpkgs_4", - "treefmt-nix": "treefmt-nix_2", - "unionmount": "unionmount_2" - }, - "locked": { - "lastModified": 1753040695, - "narHash": "sha256-dpOcuQ1eIF6mmjA4b3eGreoYIpffevdhqxs/ykq/IxI=", - "owner": "srid", - "repo": "emanote", - "rev": "fa5d7125fe32c3b25ee271f3b4013753880519f0", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "emanote", - "type": "github" - } - }, "flake-compat": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "NixOS", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", "type": "github" }, "original": { - "owner": "edolstra", + "owner": "NixOS", "repo": "flake-compat", "type": "github" } @@ -215,11 +21,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1704982712, - "narHash": "sha256-2Ptt+9h8dczgle2Oo6z5ni5rt/uLMG47UFTR1ry/wgg=", + "lastModified": 1765835352, + "narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "07f6395285469419cf9d078f59b5b49993198c00", + "rev": "a34fae9c08a15ad73f295041fec82323541400a9", "type": "github" }, "original": { @@ -228,88 +34,20 @@ "type": "github" } }, - "flake-parts_2": { - "inputs": { - "nixpkgs-lib": [ - "osds-site", - "emanote", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1751413152, - "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_3": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_2" - }, - "locked": { - "lastModified": 1751413152, - "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-root": { - "locked": { - "lastModified": 1692742795, - "narHash": "sha256-f+Y0YhVCIJ06LemO+3Xx00lIcqQxSKJHXT/yk1RTKxw=", - "owner": "srid", - "repo": "flake-root", - "rev": "d9a70d9c7a5fd7f3258ccf48da9335e9b47c3937", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "flake-root", - "type": "github" - } - }, - "flake-root_2": { - "locked": { - "lastModified": 1723604017, - "narHash": "sha256-rBtQ8gg+Dn4Sx/s+pvjdq3CB2wQNzx9XGFq/JVGCB6k=", - "owner": "srid", - "repo": "flake-root", - "rev": "b759a56851e10cb13f6b8e5698af7b59c44be26e", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "flake-root", - "type": "github" - } - }, "git-hooks-nix": { "inputs": { "flake-compat": "flake-compat", "gitignore": "gitignore", - "nixpkgs": "nixpkgs_5" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { - "lastModified": 1750779888, - "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", + "lastModified": 1767281941, + "narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", + "rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa", "type": "github" }, "original": { @@ -321,7 +59,6 @@ "gitignore": { "inputs": { "nixpkgs": [ - "osds-site", "git-hooks-nix", "nixpkgs" ] @@ -340,110 +77,17 @@ "type": "github" } }, - "haskell-flake": { - "locked": { - "lastModified": 1705067885, - "narHash": "sha256-al2JqNIkXfLiVreqSJWly64Z6YVNphWBh4m3IxGIdYI=", - "owner": "srid", - "repo": "haskell-flake", - "rev": "8a526aaf98cde6af6b2d1d368e9acb460ee34547", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "haskell-flake", - "type": "github" - } - }, - "haskell-flake_2": { - "locked": { - "lastModified": 1752499668, - "narHash": "sha256-Yif99ho8GNgXP0l9vxPHCKi7X16Cf7rwVd+HW1cMVeQ=", - "owner": "srid", - "repo": "haskell-flake", - "rev": "39065472d2587af93a502423276bfb98c2c6fb09", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "haskell-flake", - "type": "github" - } - }, - "heist-extra": { - "flake": false, - "locked": { - "lastModified": 1691619499, - "narHash": "sha256-4e8v5t4FM99pdcPhohP3dAeGtsFnirbfYGpbr2+qWxI=", - "owner": "srid", - "repo": "heist-extra", - "rev": "54ff970f733dd45b5509d1c4c298927b6241041b", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "heist-extra", - "type": "github" - } - }, - "heist-extra_2": { - "flake": false, - "locked": { - "lastModified": 1737313814, - "narHash": "sha256-WCXhs/xhCR4CKBEadQjqqgUb47bLzDY7P7oL5cSgDHc=", - "owner": "srid", - "repo": "heist-extra", - "rev": "6f73e000a34b7c054b516b9504b5a7ed08ce6a2d", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "heist-extra", - "type": "github" - } - }, - "lvar": { - "flake": false, - "locked": { - "lastModified": 1745122737, - "narHash": "sha256-ZnYXkkPmnNvt4tA45JgSC7dpttmqhUo4AHfEjB1r1gE=", - "owner": "srid", - "repo": "lvar", - "rev": "047a24c4dcd7f85f9c18058f6be991cea531870e", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "lvar", - "type": "github" - } - }, - "nixos-unified": { - "locked": { - "lastModified": 1751174231, - "narHash": "sha256-OLPo3ZI/gKH0C6P6l2W9RYm1ow/Jl4qBrasQ3rjAA0E=", - "owner": "srid", - "repo": "nixos-unified", - "rev": "05eb3d59d3b48460ea01c419702d4fc0c3210805", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "nixos-unified", - "type": "github" - } - }, "nixpkgs": { "locked": { - "lastModified": 1704842529, - "narHash": "sha256-OTeQA+F8d/Evad33JMfuXC89VMetQbsU4qcaePchGr4=", - "owner": "nixos", + "lastModified": 1767364772, + "narHash": "sha256-fFUnEYMla8b7UKjijLnMe+oVFOz6HjijGGNS1l7dYaQ=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "eabe8d3eface69f5bb16c18f8662a702f50c20d5", + "rev": "16c7794d0a28b5a37904d55bcca36003b9109aaa", "type": "github" }, "original": { - "owner": "nixos", + "owner": "NixOS", "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" @@ -451,29 +95,11 @@ }, "nixpkgs-lib": { "locked": { - "dir": "lib", - "lastModified": 1703961334, - "narHash": "sha256-M1mV/Cq+pgjk0rt6VxoyyD+O8cOUiai8t9Q6Yyq4noY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "b0d36bd0a420ecee3bc916c91886caca87c894e9", - "type": "github" - }, - "original": { - "dir": "lib", - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-lib_2": { - "locked": { - "lastModified": 1751159883, - "narHash": "sha256-urW/Ylk9FIfvXfliA1ywh75yszAbiTEVgpPeinFyVZo=", + "lastModified": 1765674936, + "narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "14a40a1d7fb9afa4739275ac642ed7301a9ba1ab", + "rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85", "type": "github" }, "original": { @@ -482,164 +108,26 @@ "type": "github" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 1767325753, - "narHash": "sha256-yA/CuWyqm+AQo2ivGy6PlYrjZBQm7jfbe461+4HF2fo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "64049ca74d63e971b627b5f3178d95642e61cedd", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-25.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1722073938, - "narHash": "sha256-OpX0StkL8vpXyWOGUD6G+MA26wAXK6SpT94kLJXo6B4=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "e36e9f57337d0ff0cf77aceb58af4c805472bfae", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1752900028, - "narHash": "sha256-dPALCtmik9Wr14MGqVXm+OQcv7vhPBXcWNIOThGnB/Q=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "6b4955211758ba47fac850c040a27f23b9b4008f", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { - "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_6": { - "locked": { - "lastModified": 1752950548, - "narHash": "sha256-NS6BLD0lxOrnCiEOcvQCDVPXafX1/ek1dfJHX1nUIzc=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "c87b95e25065c028d31a94f06a62927d18763fdf", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_7": { - "locked": { - "lastModified": 1747958103, - "narHash": "sha256-qmmFCrfBwSHoWw7cVK4Aj+fns+c54EBP8cGqp/yK410=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "fe51d34885f7b5e3e7b59572796e1bcb427eccb1", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "osds-site": { - "inputs": { - "devshell": "devshell", - "emanote": "emanote_2", - "flake-parts": "flake-parts_3", - "git-hooks-nix": "git-hooks-nix", - "nixpkgs": "nixpkgs_6", - "treefmt-nix": "treefmt-nix_3" - }, - "locked": { - "lastModified": 1753043365, - "narHash": "sha256-asHvMrxozzTIG/enqK4mV4QEOaqpkJ+Uyh5mohGnkNU=", - "ref": "refs/heads/main", - "rev": "0828b30631731c9cc62143970af2cac9ae60e5ae", - "revCount": 2, - "type": "git", - "url": "https://git.ewanick.com/bill/osds-site" - }, - "original": { - "type": "git", - "url": "https://git.ewanick.com/bill/osds-site" - } - }, "root": { "inputs": { - "emanote": "emanote", - "flake-parts": [ - "emanote", - "flake-parts" - ], - "nixpkgs": "nixpkgs_2", - "osds-site": "osds-site" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" + "flake-parts": "flake-parts", + "git-hooks-nix": "git-hooks-nix", + "nixpkgs": "nixpkgs", + "treefmt-nix": "treefmt-nix" } }, "treefmt-nix": { "inputs": { "nixpkgs": [ - "emanote", "nixpkgs" ] }, "locked": { - "lastModified": 1693468138, - "narHash": "sha256-DddblCahuTW8K0ncPOheTlG3igE8b15LJjafF1PWhOo=", + "lastModified": 1767468822, + "narHash": "sha256-MpffQxHxmjVKMiQd0Tg2IM/bSjjdQAM+NDcX6yxj7rE=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "6930a5ba0a722385baf273885a03f561dcb1af67", + "rev": "d56486eb9493ad9c4777c65932618e9c2d0468fc", "type": "github" }, "original": { @@ -647,78 +135,6 @@ "repo": "treefmt-nix", "type": "github" } - }, - "treefmt-nix_2": { - "inputs": { - "nixpkgs": [ - "osds-site", - "emanote", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1752909129, - "narHash": "sha256-Eh8FkMvGRaY71BU/oyZTTzt9RsBIq2E6j0r3eLZ/2kY=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "0043b95d80b5bf6d61e84d237e2007727f4dd38d", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "treefmt-nix_3": { - "inputs": { - "nixpkgs": "nixpkgs_7" - }, - "locked": { - "lastModified": 1753006367, - "narHash": "sha256-tzbhc4XttkyEhswByk5R38l+ztN9UDbnj0cTcP6Hp9A=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "421b56313c65a0815a52b424777f55acf0b56ddf", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "unionmount": { - "flake": false, - "locked": { - "lastModified": 1691619410, - "narHash": "sha256-V9/OcGu9cy4kV9jta12A6w5BEj8awSEVYrXPpg8YckQ=", - "owner": "srid", - "repo": "unionmount", - "rev": "ed73b627f88c8f021f41ba4b518ba41beff9df42", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "unionmount", - "type": "github" - } - }, - "unionmount_2": { - "flake": false, - "locked": { - "lastModified": 1742156722, - "narHash": "sha256-5oRYBxnxo/YK2nUdrRdDCatkPWDwSGw4zG67mOATxcU=", - "owner": "srid", - "repo": "unionmount", - "rev": "0349ae3e16e803101cbdd9c056e6b052f8817cba", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "unionmount", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index a10bb93..d4389f7 100644 --- a/flake.nix +++ b/flake.nix @@ -1,46 +1,150 @@ { - description = "System flake for Linode NixOS server"; - # Want to convert this to Flake Parts flake so I can use their special features - nixConfig = { - extra-substituters = "https://srid.cachix.org"; - extra-trusted-public-keys = "srid.cachix.org-1:3clnql5gjbJNEvhA/WQp7nrZlBptwpXnUk6JAv8aB2M="; - }; + description = "Flake.parts System flake for Linode NixOS server"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + flake-parts.url = "github:hercules-ci/flake-parts"; - emanote.url = "github:srid/emanote"; - emanote.inputs.emanote-template.follows = ""; - flake-parts.follows = "emanote/flake-parts"; - # nixpkgs.follows = "emanote/nixpkgs"; - - osds-site.url = "git+https://git.ewanick.com/bill/osds-site"; + git-hooks-nix.url = "github:cachix/git-hooks.nix"; + git-hooks-nix.inputs.nixpkgs.follows = "nixpkgs"; + treefmt-nix.url = "github:numtide/treefmt-nix"; + treefmt-nix.inputs.nixpkgs.follows = "nixpkgs"; }; - outputs = - inputs@{ - self, - nixpkgs, - emanote, - osds-site, - ... - }: - { - nixosConfigurations.linode-nixos = nixpkgs.lib.nixosSystem { - specialArgs = { inherit inputs emanote; }; - modules = [ - { - nixpkgs.config.permittedInsecurePackages = [ - "jitsi-meet-1.0.8792" + outputs = inputs @ {flake-parts, ...}: + flake-parts.lib.mkFlake {inherit inputs;} { + imports = [ + # To import a flake module + # 1. Add foo to inputs + # 2. Add foo as a parameter to the outputs function + # 3. Add here: foo.flakeModule + inputs.git-hooks-nix.flakeModule + inputs.treefmt-nix.flakeModule + ]; + + systems = [ + "x86_64-linux" + # "aarch64-linux" + # "aarch64-darwin" + # "x86_64-darwin" + ]; + + flake = { + # The usual flake attributes can be defined here, including system- + # agnostic ones like nixosModule and system-enumerating ones, although + # those are more easily expressed in perSystem. + + nixosConfigurations = { + linode-nixos = inputs.nixpkgs.lib.nixosSystem { + # system is not needed with freshly generated hardware-configuration.nix + # system = "x86_64-linux"; # or set nixpkgs.hostPlatform in a module. + specialArgs = {inherit inputs;}; + modules = [ + { + nixpkgs.config.permittedInsecurePackages = [ + "jitsi-meet-1.0.8792" + ]; + } + + ./server-config/configuration.nix + + ./nixos-apps ]; - } + }; + }; + }; - ./server-config/configuration.nix + perSystem = { + config, + self', + inputs', + pkgs, + system, + ... + }: { + # Per-system attributes can be defined here. The self' and inputs' + # module parameters provide easy access to attributes of the same + # system. - ./nixos-apps + # Equivalent to inputs'.nixpkgs.legacyPackages.hello; + # packages.default = pkgs.hello; - # osds-site - ]; + devShells.default = let + # https://downloads.haskell.org/~ghc/9.10.3/docs/users_guide/index.html + ghc' = pkgs.haskell.packages.ghc9103.ghcWithHoogle ( + self: + with self; [ + relude + split + aeson + random + neat-interpolation + + # maths + primes + arithmoi + parallel + + # graphing libraries! + Chart + Chart-cairo + ] + ); + + clean = pkgs.writeShellScriptBin "clean" '' + # Delete executables + find . -type f -executable -not -path '*/.git/*' -delete + + # Delete all Haskell IR files + find . -type f -name '*.hi' -delete + find . -type f -name '*.o' -delete + + # Delete any test graphs created + find . -type f -name '*.png' -delete + ''; + in + pkgs.mkShell { + packages = with pkgs; [ + cowsay + + alejandra + + ghc' + clean + + haskell-language-server + ghcid + hlint + + kotlin + ]; + + shellHook = '' + ${config.pre-commit.installationScript} + + echo Hello alice + ''; + }; + + pre-commit = { + settings.hooks = { + alejandra.enable = true; + mdformat.enable = true; + prettier.enable = true; + prettier.excludes = [".*\.md" "flake.lock"]; + stylish-haskell.enable = true; + }; + }; + + treefmt = { + programs = { + alejandra.enable = true; + mdformat.enable = true; + prettier.enable = true; + prettier.excludes = ["*.md"]; + stylish-haskell.enable = true; + }; + }; }; }; }