1
1

Switch to flake.parts

This commit is contained in:
2026-01-03 20:46:01 -05:00
parent 9d24e57147
commit 951ef7f777
2 changed files with 166 additions and 646 deletions

642
flake.lock generated
View File

@@ -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",

170
flake.nix
View File

@@ -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;
};
};
};
};
}