mirror of
https://codeberg.org/muon/home.git
synced 2026-07-03 23:49:35 +00:00
Merge branch 'main' of codeberg.org:muon/home
This commit is contained in:
commit
8aaa57d334
30 changed files with 978 additions and 252 deletions
|
|
@ -1,34 +1,76 @@
|
||||||
{
|
{
|
||||||
|
"dcts-client-shipping": {
|
||||||
|
"cargoLock": null,
|
||||||
|
"date": null,
|
||||||
|
"extract": null,
|
||||||
|
"name": "dcts-client-shipping",
|
||||||
|
"passthru": null,
|
||||||
|
"pinned": false,
|
||||||
|
"src": {
|
||||||
|
"deepClone": false,
|
||||||
|
"fetchSubmodules": false,
|
||||||
|
"leaveDotGit": false,
|
||||||
|
"name": null,
|
||||||
|
"owner": "hackthedev",
|
||||||
|
"repo": "dcts-client-shipping",
|
||||||
|
"rev": "v2.5",
|
||||||
|
"sha256": "sha256-fmU/rUIyHV/+GSgDuot3mDaZrYmxfhF3RXSAwE6HqPU=",
|
||||||
|
"sparseCheckout": [],
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"version": "v2.5"
|
||||||
|
},
|
||||||
|
"mender-cli": {
|
||||||
|
"cargoLock": null,
|
||||||
|
"date": null,
|
||||||
|
"extract": null,
|
||||||
|
"name": "mender-cli",
|
||||||
|
"passthru": null,
|
||||||
|
"pinned": false,
|
||||||
|
"src": {
|
||||||
|
"deepClone": false,
|
||||||
|
"fetchSubmodules": false,
|
||||||
|
"leaveDotGit": false,
|
||||||
|
"name": null,
|
||||||
|
"owner": "mendersoftware",
|
||||||
|
"repo": "mender-cli",
|
||||||
|
"rev": "2.0.0",
|
||||||
|
"sha256": "sha256-jFWC1g/ebgMIqgBFgotBDwPcGNmAK3VsvfjiuRCN1ws=",
|
||||||
|
"sparseCheckout": [],
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"version": "2.0.0"
|
||||||
|
},
|
||||||
"valheim.aaacrafting": {
|
"valheim.aaacrafting": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.aaacrafting",
|
"name": "valheim.aaacrafting",
|
||||||
"passthru": null,
|
"passthru": null,
|
||||||
"pinned": false,
|
"pinned": false,
|
||||||
"src": {
|
"src": {
|
||||||
"sha256": "sha256-YcKuJKSuhOYZVRNTfp1fYW+STecRYn/IrNVdOeC+rIE=",
|
"sha256": "sha256-XdVVDXU/YfXHnpgjfDixFvRRIn+liunVSXqmGMLXGKY=",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://thunderstore.io/package/download/Azumatt/AAA_Crafting/2.1.5/"
|
"url": "https://thunderstore.io/package/download/Azumatt/AAA_Crafting/2.1.6/"
|
||||||
},
|
},
|
||||||
"version": "2.1.5"
|
"version": "2.1.6"
|
||||||
},
|
},
|
||||||
"valheim.architect": {
|
"valheim.architect": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.architect",
|
"name": "valheim.architect",
|
||||||
"passthru": null,
|
"passthru": null,
|
||||||
"pinned": false,
|
"pinned": false,
|
||||||
"src": {
|
"src": {
|
||||||
"sha256": "sha256-osxAsTjTyVH2qG69vMxr3LH1p1Y+8g6acGHqbfdz8fs=",
|
"sha256": "sha256-tNlufmp8rMKBzcRWSp0o8FbtrPOpS5OZJACnG7N1Iqc=",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://thunderstore.io/package/download/OdinPlus/OdinArchitect/1.6.4/"
|
"url": "https://thunderstore.io/package/download/OdinPlus/OdinArchitect/1.6.5/"
|
||||||
},
|
},
|
||||||
"version": "1.6.4"
|
"version": "1.6.5"
|
||||||
},
|
},
|
||||||
"valheim.arearepair": {
|
"valheim.arearepair": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.arearepair",
|
"name": "valheim.arearepair",
|
||||||
|
|
@ -42,35 +84,35 @@
|
||||||
"version": "1.1.6"
|
"version": "1.1.6"
|
||||||
},
|
},
|
||||||
"valheim.autostore": {
|
"valheim.autostore": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.autostore",
|
"name": "valheim.autostore",
|
||||||
"passthru": null,
|
"passthru": null,
|
||||||
"pinned": false,
|
"pinned": false,
|
||||||
"src": {
|
"src": {
|
||||||
"sha256": "sha256-h75EnPCQSXMrpDTNaxBHnG4hjYLzICYdU+sE0i/Hud4=",
|
"sha256": "sha256-ZSGQTxWtTBLrGU9oRPrXgLAauiwWVQQ2gv0Rzq7FHw4=",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://thunderstore.io/package/download/Azumatt/AzuAutoStore/3.0.11/"
|
"url": "https://thunderstore.io/package/download/Azumatt/AzuAutoStore/3.0.14/"
|
||||||
},
|
},
|
||||||
"version": "3.0.11"
|
"version": "3.0.14"
|
||||||
},
|
},
|
||||||
"valheim.backpacks": {
|
"valheim.backpacks": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.backpacks",
|
"name": "valheim.backpacks",
|
||||||
"passthru": null,
|
"passthru": null,
|
||||||
"pinned": false,
|
"pinned": false,
|
||||||
"src": {
|
"src": {
|
||||||
"sha256": "sha256-xSfcLisLLPALx6l1Rtbt10YFUo112HV2I6BO/zCjr5w=",
|
"sha256": "sha256-ZHvN8J6DsRXRSzVZ3K12WSRtdKt40hMtzHMkYxl0ttU=",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://thunderstore.io/package/download/Smoothbrain/Backpacks/1.3.6/"
|
"url": "https://thunderstore.io/package/download/Smoothbrain/Backpacks/1.3.8/"
|
||||||
},
|
},
|
||||||
"version": "1.3.6"
|
"version": "1.3.8"
|
||||||
},
|
},
|
||||||
"valheim.betternetworking": {
|
"valheim.betternetworking": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.betternetworking",
|
"name": "valheim.betternetworking",
|
||||||
|
|
@ -84,7 +126,7 @@
|
||||||
"version": "2.3.2"
|
"version": "2.3.2"
|
||||||
},
|
},
|
||||||
"valheim.boneappetit": {
|
"valheim.boneappetit": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.boneappetit",
|
"name": "valheim.boneappetit",
|
||||||
|
|
@ -98,21 +140,21 @@
|
||||||
"version": "3.3.1"
|
"version": "3.3.1"
|
||||||
},
|
},
|
||||||
"valheim.campsite": {
|
"valheim.campsite": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.campsite",
|
"name": "valheim.campsite",
|
||||||
"passthru": null,
|
"passthru": null,
|
||||||
"pinned": false,
|
"pinned": false,
|
||||||
"src": {
|
"src": {
|
||||||
"sha256": "sha256-hQzKXIVxbdq73E0NZlNX+aYLS5Mg6uczX8F8GKFUtec=",
|
"sha256": "sha256-vioZ7NoIWLfO0XlRCe/BEyRaouy1Kl+cPl0QXSyqjC8=",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://thunderstore.io/package/download/OdinPlus/OdinCampsite/1.6.1/"
|
"url": "https://thunderstore.io/package/download/OdinPlus/OdinCampsite/1.6.3/"
|
||||||
},
|
},
|
||||||
"version": "1.6.1"
|
"version": "1.6.3"
|
||||||
},
|
},
|
||||||
"valheim.cartography": {
|
"valheim.cartography": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.cartography",
|
"name": "valheim.cartography",
|
||||||
|
|
@ -126,21 +168,21 @@
|
||||||
"version": "3.1.1"
|
"version": "3.1.1"
|
||||||
},
|
},
|
||||||
"valheim.craftyboxes": {
|
"valheim.craftyboxes": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.craftyboxes",
|
"name": "valheim.craftyboxes",
|
||||||
"passthru": null,
|
"passthru": null,
|
||||||
"pinned": false,
|
"pinned": false,
|
||||||
"src": {
|
"src": {
|
||||||
"sha256": "sha256-+EKD+kBj7JHrwDi/yMPus8MZRtBApX7bOqPRrA3iXoY=",
|
"sha256": "sha256-P7NucjydUf9TMJi8ObfTBA+WQsxKxeaM7N8N7mSDELY=",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://thunderstore.io/package/download/Azumatt/AzuCraftyBoxes/1.8.12/"
|
"url": "https://thunderstore.io/package/download/Azumatt/AzuCraftyBoxes/1.8.14/"
|
||||||
},
|
},
|
||||||
"version": "1.8.12"
|
"version": "1.8.14"
|
||||||
},
|
},
|
||||||
"valheim.customships": {
|
"valheim.customships": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.customships",
|
"name": "valheim.customships",
|
||||||
|
|
@ -154,21 +196,21 @@
|
||||||
"version": "0.4.1"
|
"version": "0.4.1"
|
||||||
},
|
},
|
||||||
"valheim.extendedinv": {
|
"valheim.extendedinv": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.extendedinv",
|
"name": "valheim.extendedinv",
|
||||||
"passthru": null,
|
"passthru": null,
|
||||||
"pinned": false,
|
"pinned": false,
|
||||||
"src": {
|
"src": {
|
||||||
"sha256": "sha256-PDmlJw4hfMg1fqO/hPrT6Oss0Czci/Chvr+vz79m5JI=",
|
"sha256": "sha256-mua5nD0BLzkBFIfkfOIAUPQGlOP4sTQ9eqBqrJJJG3w=",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://thunderstore.io/package/download/Azumatt/AzuExtendedPlayerInventory/2.2.2/"
|
"url": "https://thunderstore.io/package/download/Azumatt/AzuExtendedPlayerInventory/2.4.1/"
|
||||||
},
|
},
|
||||||
"version": "2.2.2"
|
"version": "2.4.1"
|
||||||
},
|
},
|
||||||
"valheim.foodmove": {
|
"valheim.foodmove": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.foodmove",
|
"name": "valheim.foodmove",
|
||||||
|
|
@ -182,21 +224,21 @@
|
||||||
"version": "1.0.1"
|
"version": "1.0.1"
|
||||||
},
|
},
|
||||||
"valheim.jotunn": {
|
"valheim.jotunn": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.jotunn",
|
"name": "valheim.jotunn",
|
||||||
"passthru": null,
|
"passthru": null,
|
||||||
"pinned": false,
|
"pinned": false,
|
||||||
"src": {
|
"src": {
|
||||||
"sha256": "sha256-AfiWmmoCsDtmvjTPw7AdiPYQZ055dTwq5GFvDD93e2M=",
|
"sha256": "sha256-6Qh5hcXM886OiOpcg73EU35kvnyvTtyJ1+7CSPzBsSA=",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://thunderstore.io/package/download/ValheimModding/Jotunn/2.27.1/"
|
"url": "https://thunderstore.io/package/download/ValheimModding/Jotunn/2.28.0/"
|
||||||
},
|
},
|
||||||
"version": "2.27.1"
|
"version": "2.28.0"
|
||||||
},
|
},
|
||||||
"valheim.jsondotnet": {
|
"valheim.jsondotnet": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.jsondotnet",
|
"name": "valheim.jsondotnet",
|
||||||
|
|
@ -210,7 +252,7 @@
|
||||||
"version": "13.0.4"
|
"version": "13.0.4"
|
||||||
},
|
},
|
||||||
"valheim.lazyvikings": {
|
"valheim.lazyvikings": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.lazyvikings",
|
"name": "valheim.lazyvikings",
|
||||||
|
|
@ -224,21 +266,21 @@
|
||||||
"version": "1.2.3"
|
"version": "1.2.3"
|
||||||
},
|
},
|
||||||
"valheim.mining": {
|
"valheim.mining": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.mining",
|
"name": "valheim.mining",
|
||||||
"passthru": null,
|
"passthru": null,
|
||||||
"pinned": false,
|
"pinned": false,
|
||||||
"src": {
|
"src": {
|
||||||
"sha256": "sha256-SxQ+Z4T5Hg5w4X4+L++eArWZXhoXuarecKl6gdpcpNQ=",
|
"sha256": "sha256-zWSIDugJchxIfzAt9Ktc37L6ez09iK77pUowUWTndgE=",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://thunderstore.io/package/download/Smoothbrain/Mining/1.1.5/"
|
"url": "https://thunderstore.io/package/download/Smoothbrain/Mining/1.1.6/"
|
||||||
},
|
},
|
||||||
"version": "1.1.5"
|
"version": "1.1.6"
|
||||||
},
|
},
|
||||||
"valheim.missingpieces": {
|
"valheim.missingpieces": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.missingpieces",
|
"name": "valheim.missingpieces",
|
||||||
|
|
@ -252,7 +294,7 @@
|
||||||
"version": "2.2.2"
|
"version": "2.2.2"
|
||||||
},
|
},
|
||||||
"valheim.multiuserchest": {
|
"valheim.multiuserchest": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.multiuserchest",
|
"name": "valheim.multiuserchest",
|
||||||
|
|
@ -266,21 +308,21 @@
|
||||||
"version": "0.6.1"
|
"version": "0.6.1"
|
||||||
},
|
},
|
||||||
"valheim.planteasily": {
|
"valheim.planteasily": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.planteasily",
|
"name": "valheim.planteasily",
|
||||||
"passthru": null,
|
"passthru": null,
|
||||||
"pinned": false,
|
"pinned": false,
|
||||||
"src": {
|
"src": {
|
||||||
"sha256": "sha256-HvjwiVBWs723LhHR7Xk6knugOU8eQewGiV+mZaAN5YU=",
|
"sha256": "sha256-A7WIMjNkkZoUD9xf5gswOv00/4j/NGkE+yD4gM+bAsY=",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://thunderstore.io/package/download/Advize/PlantEasily/2.0.3/"
|
"url": "https://thunderstore.io/package/download/Advize/PlantEasily/2.1.0/"
|
||||||
},
|
},
|
||||||
"version": "2.0.3"
|
"version": "2.1.0"
|
||||||
},
|
},
|
||||||
"valheim.quickteleport": {
|
"valheim.quickteleport": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.quickteleport",
|
"name": "valheim.quickteleport",
|
||||||
|
|
@ -294,21 +336,21 @@
|
||||||
"version": "1.1.0"
|
"version": "1.1.0"
|
||||||
},
|
},
|
||||||
"valheim.reclaim": {
|
"valheim.reclaim": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.reclaim",
|
"name": "valheim.reclaim",
|
||||||
"passthru": null,
|
"passthru": null,
|
||||||
"pinned": false,
|
"pinned": false,
|
||||||
"src": {
|
"src": {
|
||||||
"sha256": "sha256-MnaJ7ulZdDemBrSzKnsgL0BN7UfRfRueFJRiL0iwjB8=",
|
"sha256": "sha256-MIWKc6cdibXbFXKdMDdNsj7a1L6+jAMzJvhm79JQn/E=",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://thunderstore.io/package/download/Azumatt/Recycle_N_Reclaim/1.3.10/"
|
"url": "https://thunderstore.io/package/download/Azumatt/Recycle_N_Reclaim/1.4.0/"
|
||||||
},
|
},
|
||||||
"version": "1.3.10"
|
"version": "1.4.0"
|
||||||
},
|
},
|
||||||
"valheim.savecrossbow": {
|
"valheim.savecrossbow": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.savecrossbow",
|
"name": "valheim.savecrossbow",
|
||||||
|
|
@ -322,7 +364,7 @@
|
||||||
"version": "1.0.2"
|
"version": "1.0.2"
|
||||||
},
|
},
|
||||||
"valheim.seedbed": {
|
"valheim.seedbed": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.seedbed",
|
"name": "valheim.seedbed",
|
||||||
|
|
@ -336,7 +378,7 @@
|
||||||
"version": "1.2.8"
|
"version": "1.2.8"
|
||||||
},
|
},
|
||||||
"valheim.servercharacters": {
|
"valheim.servercharacters": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.servercharacters",
|
"name": "valheim.servercharacters",
|
||||||
|
|
@ -350,7 +392,7 @@
|
||||||
"version": "1.4.16"
|
"version": "1.4.16"
|
||||||
},
|
},
|
||||||
"valheim.smoothsave": {
|
"valheim.smoothsave": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.smoothsave",
|
"name": "valheim.smoothsave",
|
||||||
|
|
@ -364,7 +406,7 @@
|
||||||
"version": "1.0.5"
|
"version": "1.0.5"
|
||||||
},
|
},
|
||||||
"valheim.spearfishing": {
|
"valheim.spearfishing": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.spearfishing",
|
"name": "valheim.spearfishing",
|
||||||
|
|
@ -378,21 +420,21 @@
|
||||||
"version": "1.0.4"
|
"version": "1.0.4"
|
||||||
},
|
},
|
||||||
"valheim.swim": {
|
"valheim.swim": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.swim",
|
"name": "valheim.swim",
|
||||||
"passthru": null,
|
"passthru": null,
|
||||||
"pinned": false,
|
"pinned": false,
|
||||||
"src": {
|
"src": {
|
||||||
"sha256": "sha256-ZNGOZDwLqZ+AisdQKvSU2imqdCQ84jgzT38L1Fp4g4g=",
|
"sha256": "sha256-3BsC+cFLMtuW9pat5vTqHPt1Ak6fbXStaq6Kk9CdU3c=",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://thunderstore.io/package/download/blacks7ar/VikingsDoSwim/1.4.0/"
|
"url": "https://thunderstore.io/package/download/blacks7ar/VikingsDoSwim/1.4.1/"
|
||||||
},
|
},
|
||||||
"version": "1.4.0"
|
"version": "1.4.1"
|
||||||
},
|
},
|
||||||
"valheim.swimequip": {
|
"valheim.swimequip": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.swimequip",
|
"name": "valheim.swimequip",
|
||||||
|
|
@ -406,21 +448,21 @@
|
||||||
"version": "1.1.3"
|
"version": "1.1.3"
|
||||||
},
|
},
|
||||||
"valheim.targetportal": {
|
"valheim.targetportal": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "valheim.targetportal",
|
"name": "valheim.targetportal",
|
||||||
"passthru": null,
|
"passthru": null,
|
||||||
"pinned": false,
|
"pinned": false,
|
||||||
"src": {
|
"src": {
|
||||||
"sha256": "sha256-qjeihonPwlja7sCRyKhJL53fWX4w1qfuFoOA6FAA7mw=",
|
"sha256": "sha256-mW73PrH+AwZGTYk2zr2/MOTa5RsP5rDr/HKIeKqo9DI=",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://thunderstore.io/package/download/Smoothbrain/TargetPortal/1.2.1/"
|
"url": "https://thunderstore.io/package/download/Smoothbrain/TargetPortal/1.2.3/"
|
||||||
},
|
},
|
||||||
"version": "1.2.1"
|
"version": "1.2.3"
|
||||||
},
|
},
|
||||||
"vesktop.micfix": {
|
"vesktop.micfix": {
|
||||||
"cargoLocks": null,
|
"cargoLock": null,
|
||||||
"date": null,
|
"date": null,
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "vesktop.micfix",
|
"name": "vesktop.micfix",
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,48 @@
|
||||||
# This file was generated by nvfetcher, please do not modify it manually.
|
# This file was generated by nvfetcher, please do not modify it manually.
|
||||||
{ fetchgit, fetchurl, fetchFromGitHub, dockerTools }:
|
|
||||||
{
|
{
|
||||||
|
fetchgit,
|
||||||
|
fetchurl,
|
||||||
|
fetchFromGitHub,
|
||||||
|
dockerTools,
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
dcts-client-shipping = {
|
||||||
|
pname = "dcts-client-shipping";
|
||||||
|
version = "v2.5";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "hackthedev";
|
||||||
|
repo = "dcts-client-shipping";
|
||||||
|
rev = "v2.5";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
sha256 = "sha256-fmU/rUIyHV/+GSgDuot3mDaZrYmxfhF3RXSAwE6HqPU=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
mender-cli = {
|
||||||
|
pname = "mender-cli";
|
||||||
|
version = "2.0.0";
|
||||||
|
vendorHash = "sha256-vlcq9HGezJsorwsaVwvIKxi1pSoo4wTPmc6qCCVDdfI=";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "mendersoftware";
|
||||||
|
repo = "mender-cli";
|
||||||
|
rev = "2.0.0";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
sha256 = "sha256-jFWC1g/ebgMIqgBFgotBDwPcGNmAK3VsvfjiuRCN1ws=";
|
||||||
|
};
|
||||||
|
};
|
||||||
"valheim.aaacrafting" = {
|
"valheim.aaacrafting" = {
|
||||||
pname = "valheim.aaacrafting";
|
pname = "valheim.aaacrafting";
|
||||||
version = "2.1.5";
|
version = "2.1.6";
|
||||||
src = fetchTarball {
|
src = fetchTarball {
|
||||||
url = "https://thunderstore.io/package/download/Azumatt/AAA_Crafting/2.1.5/";
|
url = "https://thunderstore.io/package/download/Azumatt/AAA_Crafting/2.1.6/";
|
||||||
sha256 = "sha256-YcKuJKSuhOYZVRNTfp1fYW+STecRYn/IrNVdOeC+rIE=";
|
sha256 = "sha256-XdVVDXU/YfXHnpgjfDixFvRRIn+liunVSXqmGMLXGKY=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"valheim.architect" = {
|
"valheim.architect" = {
|
||||||
pname = "valheim.architect";
|
pname = "valheim.architect";
|
||||||
version = "1.6.4";
|
version = "1.6.5";
|
||||||
src = fetchTarball {
|
src = fetchTarball {
|
||||||
url = "https://thunderstore.io/package/download/OdinPlus/OdinArchitect/1.6.4/";
|
url = "https://thunderstore.io/package/download/OdinPlus/OdinArchitect/1.6.5/";
|
||||||
sha256 = "sha256-osxAsTjTyVH2qG69vMxr3LH1p1Y+8g6acGHqbfdz8fs=";
|
sha256 = "sha256-tNlufmp8rMKBzcRWSp0o8FbtrPOpS5OZJACnG7N1Iqc=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"valheim.arearepair" = {
|
"valheim.arearepair" = {
|
||||||
|
|
@ -27,18 +55,18 @@
|
||||||
};
|
};
|
||||||
"valheim.autostore" = {
|
"valheim.autostore" = {
|
||||||
pname = "valheim.autostore";
|
pname = "valheim.autostore";
|
||||||
version = "3.0.11";
|
version = "3.0.14";
|
||||||
src = fetchTarball {
|
src = fetchTarball {
|
||||||
url = "https://thunderstore.io/package/download/Azumatt/AzuAutoStore/3.0.11/";
|
url = "https://thunderstore.io/package/download/Azumatt/AzuAutoStore/3.0.14/";
|
||||||
sha256 = "sha256-h75EnPCQSXMrpDTNaxBHnG4hjYLzICYdU+sE0i/Hud4=";
|
sha256 = "sha256-ZSGQTxWtTBLrGU9oRPrXgLAauiwWVQQ2gv0Rzq7FHw4=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"valheim.backpacks" = {
|
"valheim.backpacks" = {
|
||||||
pname = "valheim.backpacks";
|
pname = "valheim.backpacks";
|
||||||
version = "1.3.6";
|
version = "1.3.8";
|
||||||
src = fetchTarball {
|
src = fetchTarball {
|
||||||
url = "https://thunderstore.io/package/download/Smoothbrain/Backpacks/1.3.6/";
|
url = "https://thunderstore.io/package/download/Smoothbrain/Backpacks/1.3.8/";
|
||||||
sha256 = "sha256-xSfcLisLLPALx6l1Rtbt10YFUo112HV2I6BO/zCjr5w=";
|
sha256 = "sha256-ZHvN8J6DsRXRSzVZ3K12WSRtdKt40hMtzHMkYxl0ttU=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"valheim.betternetworking" = {
|
"valheim.betternetworking" = {
|
||||||
|
|
@ -59,10 +87,10 @@
|
||||||
};
|
};
|
||||||
"valheim.campsite" = {
|
"valheim.campsite" = {
|
||||||
pname = "valheim.campsite";
|
pname = "valheim.campsite";
|
||||||
version = "1.6.1";
|
version = "1.6.3";
|
||||||
src = fetchTarball {
|
src = fetchTarball {
|
||||||
url = "https://thunderstore.io/package/download/OdinPlus/OdinCampsite/1.6.1/";
|
url = "https://thunderstore.io/package/download/OdinPlus/OdinCampsite/1.6.3/";
|
||||||
sha256 = "sha256-hQzKXIVxbdq73E0NZlNX+aYLS5Mg6uczX8F8GKFUtec=";
|
sha256 = "sha256-vioZ7NoIWLfO0XlRCe/BEyRaouy1Kl+cPl0QXSyqjC8=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"valheim.cartography" = {
|
"valheim.cartography" = {
|
||||||
|
|
@ -75,10 +103,10 @@
|
||||||
};
|
};
|
||||||
"valheim.craftyboxes" = {
|
"valheim.craftyboxes" = {
|
||||||
pname = "valheim.craftyboxes";
|
pname = "valheim.craftyboxes";
|
||||||
version = "1.8.12";
|
version = "1.8.14";
|
||||||
src = fetchTarball {
|
src = fetchTarball {
|
||||||
url = "https://thunderstore.io/package/download/Azumatt/AzuCraftyBoxes/1.8.12/";
|
url = "https://thunderstore.io/package/download/Azumatt/AzuCraftyBoxes/1.8.14/";
|
||||||
sha256 = "sha256-+EKD+kBj7JHrwDi/yMPus8MZRtBApX7bOqPRrA3iXoY=";
|
sha256 = "sha256-P7NucjydUf9TMJi8ObfTBA+WQsxKxeaM7N8N7mSDELY=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"valheim.customships" = {
|
"valheim.customships" = {
|
||||||
|
|
@ -91,10 +119,10 @@
|
||||||
};
|
};
|
||||||
"valheim.extendedinv" = {
|
"valheim.extendedinv" = {
|
||||||
pname = "valheim.extendedinv";
|
pname = "valheim.extendedinv";
|
||||||
version = "2.2.2";
|
version = "2.4.1";
|
||||||
src = fetchTarball {
|
src = fetchTarball {
|
||||||
url = "https://thunderstore.io/package/download/Azumatt/AzuExtendedPlayerInventory/2.2.2/";
|
url = "https://thunderstore.io/package/download/Azumatt/AzuExtendedPlayerInventory/2.4.1/";
|
||||||
sha256 = "sha256-PDmlJw4hfMg1fqO/hPrT6Oss0Czci/Chvr+vz79m5JI=";
|
sha256 = "sha256-mua5nD0BLzkBFIfkfOIAUPQGlOP4sTQ9eqBqrJJJG3w=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"valheim.foodmove" = {
|
"valheim.foodmove" = {
|
||||||
|
|
@ -107,10 +135,10 @@
|
||||||
};
|
};
|
||||||
"valheim.jotunn" = {
|
"valheim.jotunn" = {
|
||||||
pname = "valheim.jotunn";
|
pname = "valheim.jotunn";
|
||||||
version = "2.27.1";
|
version = "2.28.0";
|
||||||
src = fetchTarball {
|
src = fetchTarball {
|
||||||
url = "https://thunderstore.io/package/download/ValheimModding/Jotunn/2.27.1/";
|
url = "https://thunderstore.io/package/download/ValheimModding/Jotunn/2.28.0/";
|
||||||
sha256 = "sha256-AfiWmmoCsDtmvjTPw7AdiPYQZ055dTwq5GFvDD93e2M=";
|
sha256 = "sha256-6Qh5hcXM886OiOpcg73EU35kvnyvTtyJ1+7CSPzBsSA=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"valheim.jsondotnet" = {
|
"valheim.jsondotnet" = {
|
||||||
|
|
@ -131,10 +159,10 @@
|
||||||
};
|
};
|
||||||
"valheim.mining" = {
|
"valheim.mining" = {
|
||||||
pname = "valheim.mining";
|
pname = "valheim.mining";
|
||||||
version = "1.1.5";
|
version = "1.1.6";
|
||||||
src = fetchTarball {
|
src = fetchTarball {
|
||||||
url = "https://thunderstore.io/package/download/Smoothbrain/Mining/1.1.5/";
|
url = "https://thunderstore.io/package/download/Smoothbrain/Mining/1.1.6/";
|
||||||
sha256 = "sha256-SxQ+Z4T5Hg5w4X4+L++eArWZXhoXuarecKl6gdpcpNQ=";
|
sha256 = "sha256-zWSIDugJchxIfzAt9Ktc37L6ez09iK77pUowUWTndgE=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"valheim.missingpieces" = {
|
"valheim.missingpieces" = {
|
||||||
|
|
@ -155,10 +183,10 @@
|
||||||
};
|
};
|
||||||
"valheim.planteasily" = {
|
"valheim.planteasily" = {
|
||||||
pname = "valheim.planteasily";
|
pname = "valheim.planteasily";
|
||||||
version = "2.0.3";
|
version = "2.1.0";
|
||||||
src = fetchTarball {
|
src = fetchTarball {
|
||||||
url = "https://thunderstore.io/package/download/Advize/PlantEasily/2.0.3/";
|
url = "https://thunderstore.io/package/download/Advize/PlantEasily/2.1.0/";
|
||||||
sha256 = "sha256-HvjwiVBWs723LhHR7Xk6knugOU8eQewGiV+mZaAN5YU=";
|
sha256 = "sha256-A7WIMjNkkZoUD9xf5gswOv00/4j/NGkE+yD4gM+bAsY=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"valheim.quickteleport" = {
|
"valheim.quickteleport" = {
|
||||||
|
|
@ -171,10 +199,10 @@
|
||||||
};
|
};
|
||||||
"valheim.reclaim" = {
|
"valheim.reclaim" = {
|
||||||
pname = "valheim.reclaim";
|
pname = "valheim.reclaim";
|
||||||
version = "1.3.10";
|
version = "1.4.0";
|
||||||
src = fetchTarball {
|
src = fetchTarball {
|
||||||
url = "https://thunderstore.io/package/download/Azumatt/Recycle_N_Reclaim/1.3.10/";
|
url = "https://thunderstore.io/package/download/Azumatt/Recycle_N_Reclaim/1.4.0/";
|
||||||
sha256 = "sha256-MnaJ7ulZdDemBrSzKnsgL0BN7UfRfRueFJRiL0iwjB8=";
|
sha256 = "sha256-MIWKc6cdibXbFXKdMDdNsj7a1L6+jAMzJvhm79JQn/E=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"valheim.savecrossbow" = {
|
"valheim.savecrossbow" = {
|
||||||
|
|
@ -219,10 +247,10 @@
|
||||||
};
|
};
|
||||||
"valheim.swim" = {
|
"valheim.swim" = {
|
||||||
pname = "valheim.swim";
|
pname = "valheim.swim";
|
||||||
version = "1.4.0";
|
version = "1.4.1";
|
||||||
src = fetchTarball {
|
src = fetchTarball {
|
||||||
url = "https://thunderstore.io/package/download/blacks7ar/VikingsDoSwim/1.4.0/";
|
url = "https://thunderstore.io/package/download/blacks7ar/VikingsDoSwim/1.4.1/";
|
||||||
sha256 = "sha256-ZNGOZDwLqZ+AisdQKvSU2imqdCQ84jgzT38L1Fp4g4g=";
|
sha256 = "sha256-3BsC+cFLMtuW9pat5vTqHPt1Ak6fbXStaq6Kk9CdU3c=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"valheim.swimequip" = {
|
"valheim.swimequip" = {
|
||||||
|
|
@ -235,10 +263,10 @@
|
||||||
};
|
};
|
||||||
"valheim.targetportal" = {
|
"valheim.targetportal" = {
|
||||||
pname = "valheim.targetportal";
|
pname = "valheim.targetportal";
|
||||||
version = "1.2.1";
|
version = "1.2.3";
|
||||||
src = fetchTarball {
|
src = fetchTarball {
|
||||||
url = "https://thunderstore.io/package/download/Smoothbrain/TargetPortal/1.2.1/";
|
url = "https://thunderstore.io/package/download/Smoothbrain/TargetPortal/1.2.3/";
|
||||||
sha256 = "sha256-qjeihonPwlja7sCRyKhJL53fWX4w1qfuFoOA6FAA7mw=";
|
sha256 = "sha256-mW73PrH+AwZGTYk2zr2/MOTa5RsP5rDr/HKIeKqo9DI=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"vesktop.micfix" = {
|
"vesktop.micfix" = {
|
||||||
|
|
|
||||||
124
flake.lock
generated
124
flake.lock
generated
|
|
@ -233,11 +233,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773367248,
|
"lastModified": 1774210133,
|
||||||
"narHash": "sha256-FFMc1uAwy2GYasd0rdNDVxKyAgzuoJH2M+GglBQbqf0=",
|
"narHash": "sha256-yeiWCY9aAUUJ3ebMVjs0UZXRnT5x90MCtpbpOWiXrvM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "be0c641a6a5564caa33982faa1fe2c60d92131c7",
|
"rev": "c6fe2944ad9f2444b2d767c4a5edee7c166e8a95",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -275,11 +275,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772330611,
|
"lastModified": 1773422513,
|
||||||
"narHash": "sha256-UZjPc/d5XRxvjDbk4veAO4XFdvx6BUum2l40V688Xq8=",
|
"narHash": "sha256-MPjR48roW7CUMU6lu0+qQGqj92Kuh3paIulMWFZy+NQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "58fd7ff0eec2cda43e705c4c0585729ec471d400",
|
"rev": "ef12a9a2b0f77c8fa3dda1e7e494fca668909056",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -291,7 +291,9 @@
|
||||||
"impermanence": {
|
"impermanence": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769548169,
|
"lastModified": 1769548169,
|
||||||
|
|
@ -348,7 +350,9 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"nix-index-database": "nix-index-database",
|
"nix-index-database": "nix-index-database",
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771150922,
|
"lastModified": 1771150922,
|
||||||
|
|
@ -405,7 +409,9 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750164803,
|
"lastModified": 1750164803,
|
||||||
|
|
@ -423,11 +429,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1768564909,
|
"lastModified": 1774106199,
|
||||||
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
|
"narHash": "sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f",
|
"rev": "6c9a78c09ff4d6c21d0319114873508a6ec01655",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -437,70 +443,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1771008912,
|
|
||||||
"narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "a82ccc39b39b621151d6732718e3e250109076fa",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1748929857,
|
|
||||||
"narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1773282481,
|
|
||||||
"narHash": "sha256-b/GV2ysM8mKHhinse2wz+uP37epUrSE+sAKXy/xvBY4=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "fe416aaedd397cacb33a610b33d60ff2b431b127",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_5": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1767767207,
|
|
||||||
"narHash": "sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "5912c1772a44e31bf1c63c0390b90501e5026886",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nur": {
|
"nur": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": [
|
"flake-parts": [
|
||||||
|
|
@ -538,11 +480,11 @@
|
||||||
"systems": "systems_2"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773343795,
|
"lastModified": 1774224548,
|
||||||
"narHash": "sha256-0+HEuOytpwyPt7i1jj6v2QJ+NXXisCYnL2XNwPBltvg=",
|
"narHash": "sha256-g45WZAZHNc7wJBkK4IdB5dq0Bh0JE7G0gcY2H5DFi44=",
|
||||||
"owner": "NotAShelf",
|
"owner": "NotAShelf",
|
||||||
"repo": "nvf",
|
"repo": "nvf",
|
||||||
"rev": "83b44eaf50b96bd5d06b1a56a3a51f1b2362db52",
|
"rev": "edfb73fa4ced576f587d259a70a513b4152f8cea",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -558,7 +500,7 @@
|
||||||
"nix-alien": "nix-alien",
|
"nix-alien": "nix-alien",
|
||||||
"nix-flatpak": "nix-flatpak",
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nix-minecraft": "nix-minecraft",
|
"nix-minecraft": "nix-minecraft",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": "nixpkgs",
|
||||||
"nvf": "nvf",
|
"nvf": "nvf",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
"stylix": "stylix",
|
"stylix": "stylix",
|
||||||
|
|
@ -573,11 +515,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773096132,
|
"lastModified": 1774154798,
|
||||||
"narHash": "sha256-M3zEnq9OElB7zqc+mjgPlByPm1O5t2fbUrH3t/Hm5Ag=",
|
"narHash": "sha256-zsTuloDSdKf+PrI1MsWx5z/cyGEJ8P3eERtAfdP8Bmg=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "d1ff3b1034d5bab5d7d8086a7803c5a5968cd784",
|
"rev": "3e0d543e6ba6c0c48117a81614e90c6d8c425170",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -616,7 +558,9 @@
|
||||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts_2",
|
||||||
"gnome-shell": "gnome-shell",
|
"gnome-shell": "gnome-shell",
|
||||||
"nixpkgs": "nixpkgs_5",
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"systems": "systems_3",
|
"systems": "systems_3",
|
||||||
"tinted-foot": "tinted-foot",
|
"tinted-foot": "tinted-foot",
|
||||||
|
|
@ -626,11 +570,11 @@
|
||||||
"tinted-zed": "tinted-zed"
|
"tinted-zed": "tinted-zed"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772296853,
|
"lastModified": 1774124764,
|
||||||
"narHash": "sha256-pAtzPsgHRKw/2Kv8HgAjSJg450FDldHPWsP3AKG/Xj0=",
|
"narHash": "sha256-Poz9WTjiRlqZIf197CrMMJfTifZhrZpbHFv0eU1Nhtg=",
|
||||||
"owner": "danth",
|
"owner": "danth",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "c4b8e80a1020e09a1f081ad0f98ce804a6e85acf",
|
"rev": "e31c79f571c5595a155f84b9d77ce53a84745494",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -794,11 +738,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773290887,
|
"lastModified": 1774242250,
|
||||||
"narHash": "sha256-L1yMYmFffHfZNP+hKJGRBmrFKkn/VDhu7jEbVftBQuM=",
|
"narHash": "sha256-pchbnY7KVnH26g4O3LZO8vpshInqNj937gAqlPob1Mk=",
|
||||||
"owner": "0xc000022070",
|
"owner": "0xc000022070",
|
||||||
"repo": "zen-browser-flake",
|
"repo": "zen-browser-flake",
|
||||||
"rev": "9346698c4562819f61b4e5097151ec0b17729fab",
|
"rev": "f19c3e6683c2d2f3fcfcb88fb691931a104bc47c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
32
flake.nix
32
flake.nix
|
|
@ -9,9 +9,13 @@
|
||||||
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
|
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
impermanence.url = "github:nix-community/impermanence";
|
impermanence.url = "github:nix-community/impermanence";
|
||||||
|
impermanence.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
stylix.url = "github:danth/stylix";
|
stylix.url = "github:danth/stylix";
|
||||||
|
stylix.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
nix-alien.url = "github:thiagokokada/nix-alien";
|
nix-alien.url = "github:thiagokokada/nix-alien";
|
||||||
|
nix-alien.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
nvf = {
|
nvf = {
|
||||||
url = "github:NotAShelf/nvf";
|
url = "github:NotAShelf/nvf";
|
||||||
|
|
@ -24,11 +28,14 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
nix-minecraft.url = "git+https://codeberg.org/nix-astral/nix-minecraft.git";
|
nix-minecraft.url = "git+https://codeberg.org/nix-astral/nix-minecraft.git";
|
||||||
|
nix-minecraft.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
# nix-minecraft.url = "github:Infinidoge/nix-minecraft";
|
# nix-minecraft.url = "github:Infinidoge/nix-minecraft";
|
||||||
valheim-server.url = "github:kmjayadeep/valheim-server-flake";
|
valheim-server.url = "github:kmjayadeep/valheim-server-flake";
|
||||||
valheim-server.inputs.nixpkgs.follows = "nixpkgs";
|
valheim-server.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
nix-flatpak.url = "github:gmodena/nix-flatpak?ref=latest";
|
nix-flatpak.url = "github:gmodena/nix-flatpak?ref=latest";
|
||||||
|
nix-flatpak.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs @ {
|
outputs = inputs @ {
|
||||||
|
|
@ -53,9 +60,10 @@
|
||||||
(builtins.readDir ./hosts));
|
(builtins.readDir ./hosts));
|
||||||
|
|
||||||
nixosConfigs = builtins.listToAttrs (map (host: {
|
nixosConfigs = builtins.listToAttrs (map (host: {
|
||||||
name = host;
|
name = host;
|
||||||
value = utils.mkHost ./hosts/${host}/configuration.nix;
|
value = utils.mkHost ./hosts/${host}/configuration.nix;
|
||||||
}) hosts);
|
})
|
||||||
|
hosts);
|
||||||
in {
|
in {
|
||||||
nixosConfigurations = nixosConfigs;
|
nixosConfigurations = nixosConfigs;
|
||||||
|
|
||||||
|
|
@ -65,12 +73,13 @@
|
||||||
# osConfig is injected so all modules using it continue to work.
|
# osConfig is injected so all modules using it continue to work.
|
||||||
# Use: home-manager switch --flake '.#muon@<host>'
|
# Use: home-manager switch --flake '.#muon@<host>'
|
||||||
homeConfigurations = builtins.listToAttrs (map (host: {
|
homeConfigurations = builtins.listToAttrs (map (host: {
|
||||||
name = "muon@${host}";
|
name = "muon@${host}";
|
||||||
value = utils.mkHome {
|
value = utils.mkHome {
|
||||||
hostConfig = nixosConfigs.${host};
|
hostConfig = nixosConfigs.${host};
|
||||||
homeFile = ./hosts/${host}/home.nix;
|
homeFile = ./hosts/${host}/home.nix;
|
||||||
};
|
};
|
||||||
}) hosts);
|
})
|
||||||
|
hosts);
|
||||||
|
|
||||||
colmena = {
|
colmena = {
|
||||||
meta = {
|
meta = {
|
||||||
|
|
@ -94,6 +103,11 @@
|
||||||
./modules/nixos
|
./modules/nixos
|
||||||
inputs.home-manager.nixosModules.default
|
inputs.home-manager.nixosModules.default
|
||||||
inputs.stylix.nixosModules.stylix
|
inputs.stylix.nixosModules.stylix
|
||||||
|
inputs.impermanence.nixosModules.impermanence
|
||||||
|
];
|
||||||
|
|
||||||
|
home-manager.sharedModules = [
|
||||||
|
inputs.stylix.homeManagerModules.stylix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,9 +50,10 @@ in {
|
||||||
mods.server.ntfy.enable = true;
|
mods.server.ntfy.enable = true;
|
||||||
mods.server.lemmy.enable = true;
|
mods.server.lemmy.enable = true;
|
||||||
mods.server.audio.enable = true;
|
mods.server.audio.enable = true;
|
||||||
mods.server.murmur.enable = true;
|
# mods.server.murmur.enable = true;
|
||||||
mods.server.atuin.enable = true;
|
mods.server.atuin.enable = true;
|
||||||
mods.server.seedbox.enable = true;
|
# mods.server.seedbox.enable = true;
|
||||||
|
mods.server.enshrouded.enable = true;
|
||||||
|
|
||||||
mods.server.dash.enable = false;
|
mods.server.dash.enable = false;
|
||||||
mods.server.nginx.ports.dash = 3009;
|
mods.server.nginx.ports.dash = 3009;
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@ in {
|
||||||
with pkgs; [
|
with pkgs; [
|
||||||
nix-alien
|
nix-alien
|
||||||
r2modman
|
r2modman
|
||||||
lutris
|
|
||||||
godot
|
godot
|
||||||
rustdesk-flutter
|
rustdesk-flutter
|
||||||
motion
|
motion
|
||||||
|
|
@ -81,7 +80,15 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
networking.firewall.allowedTCPPorts = [ 80 ];
|
networking.firewall.allowedTCPPorts = [80];
|
||||||
|
|
||||||
|
# Wildcard DNS: *.word.local -> 127.0.0.1 via NetworkManager's built-in dnsmasq
|
||||||
|
networking.networkmanager.dns = "dnsmasq";
|
||||||
|
# Force resolv.conf to use local dnsmasq so wildcard DNS is actually queried
|
||||||
|
networking.resolvconf.useLocalResolver = true;
|
||||||
|
environment.etc."NetworkManager/dnsmasq.d/word-local.conf".text = ''
|
||||||
|
address=/.word.local/127.0.0.1
|
||||||
|
'';
|
||||||
|
|
||||||
virtualisation.virtualbox.host.enable = true;
|
virtualisation.virtualbox.host.enable = true;
|
||||||
users.extraGroups.vboxusers.members = ["user-with-access-to-virtualbox"];
|
users.extraGroups.vboxusers.members = ["user-with-access-to-virtualbox"];
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ in {
|
||||||
# Modules
|
# Modules
|
||||||
mods.desktop.enable = false;
|
mods.desktop.enable = false;
|
||||||
|
|
||||||
mods.theme.enable = true;
|
mods.theme.enable = false;
|
||||||
mods.theme.scheme = "woodland";
|
mods.theme.scheme = "woodland";
|
||||||
mods.theme.wallpaper = ./wallpaper.png;
|
mods.theme.wallpaper = ./wallpaper.png;
|
||||||
|
|
||||||
|
|
@ -42,6 +42,16 @@ in {
|
||||||
mods.server.wireguard.enable = true;
|
mods.server.wireguard.enable = true;
|
||||||
mods.server.nginx.enable = true;
|
mods.server.nginx.enable = true;
|
||||||
|
|
||||||
|
documentation = {
|
||||||
|
enable = false;
|
||||||
|
nixos.enable = false;
|
||||||
|
man.enable = false;
|
||||||
|
info.enable = false;
|
||||||
|
doc.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
i18n.supportedLocales = ["en_US.UTF-8/UTF-8"];
|
||||||
|
|
||||||
# Use the GRUB 2 boot loader.
|
# Use the GRUB 2 boot loader.
|
||||||
boot.loader.grub.enable = true;
|
boot.loader.grub.enable = true;
|
||||||
boot.loader.grub.device = "/dev/vda";
|
boot.loader.grub.device = "/dev/vda";
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
{ pkgs, lib, osConfig,... }: {
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
osConfig,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
# Modules
|
# Modules
|
||||||
mods.terminal.zsh.enable = true;
|
mods.terminal.zsh.enable = true;
|
||||||
mods.terminal.development.enable = true;
|
|
||||||
mods.terminal.tools.enable = true;
|
|
||||||
|
|
||||||
# Version of first install
|
# Version of first install
|
||||||
home.stateVersion = "24.05";
|
home.stateVersion = "24.05";
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,6 @@ in {
|
||||||
pkgs.qmk
|
pkgs.qmk
|
||||||
pkgs.jq
|
pkgs.jq
|
||||||
pkgs.wireguard-tools
|
pkgs.wireguard-tools
|
||||||
pkgs.opencode
|
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.binfmt = {
|
boot.binfmt = {
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,6 @@ in {
|
||||||
go
|
go
|
||||||
rainfrog
|
rainfrog
|
||||||
tealdeer
|
tealdeer
|
||||||
(callPackage ./packages/mender-cli.nix {})
|
|
||||||
]
|
]
|
||||||
# Non-free </3
|
# Non-free </3
|
||||||
++ [google-cloud-sdk google-cloud-sql-proxy];
|
++ [google-cloud-sdk google-cloud-sql-proxy];
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,6 @@ in {
|
||||||
pkgs.qmk
|
pkgs.qmk
|
||||||
pkgs.jq
|
pkgs.jq
|
||||||
pkgs.wireguard-tools
|
pkgs.wireguard-tools
|
||||||
pkgs.opencode
|
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.binfmt = {
|
boot.binfmt = {
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ in {
|
||||||
mods.desktop.productivity.enable = false;
|
mods.desktop.productivity.enable = false;
|
||||||
mods.zen.enable = true;
|
mods.zen.enable = true;
|
||||||
mods.octo.enable = true;
|
mods.octo.enable = true;
|
||||||
|
mods.opencode.enable = true;
|
||||||
|
|
||||||
home.packages = with pkgs;
|
home.packages = with pkgs;
|
||||||
[
|
[
|
||||||
|
|
@ -44,7 +45,7 @@ in {
|
||||||
go
|
go
|
||||||
rainfrog
|
rainfrog
|
||||||
tealdeer
|
tealdeer
|
||||||
(callPackage ./packages/mender-cli.nix {})
|
# (callPackage ./packages/mender-cli.nix {})
|
||||||
]
|
]
|
||||||
# Non-free </3
|
# Non-free </3
|
||||||
++ [google-cloud-sdk google-cloud-sql-proxy];
|
++ [google-cloud-sdk google-cloud-sql-proxy];
|
||||||
|
|
|
||||||
|
|
@ -27,8 +27,6 @@ in {
|
||||||
pulseaudio
|
pulseaudio
|
||||||
pavucontrol
|
pavucontrol
|
||||||
alsa-utils
|
alsa-utils
|
||||||
|
|
||||||
opencode
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Hardware preferences
|
# Hardware preferences
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,10 @@
|
||||||
search = 8081;
|
search = 8081;
|
||||||
videos = 8082;
|
videos = 8082;
|
||||||
reddit = 8083;
|
reddit = 8083;
|
||||||
|
|
||||||
|
# docker compose
|
||||||
|
discord = 2052;
|
||||||
|
livekit = 7880;
|
||||||
};
|
};
|
||||||
mods.server.local.ports = {
|
mods.server.local.ports = {
|
||||||
# grav = 5001
|
# grav = 5001
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ in
|
||||||
# mullvad-browser
|
# mullvad-browser
|
||||||
|
|
||||||
# password manager
|
# password manager
|
||||||
bitwarden-desktop
|
# bitwarden-desktop
|
||||||
|
|
||||||
# file management
|
# file management
|
||||||
libsForQt5.breeze-icons
|
libsForQt5.breeze-icons
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,12 @@
|
||||||
vesktop-nogain = pkgs.vesktop.overrideAttrs (previousAttrs: {
|
vesktop-nogain = pkgs.vesktop.overrideAttrs (previousAttrs: {
|
||||||
patches = previousAttrs.patches ++ [sources."vesktop.micfix".src];
|
patches = previousAttrs.patches ++ [sources."vesktop.micfix".src];
|
||||||
});
|
});
|
||||||
|
# freetube-custom =
|
||||||
|
# (import sources.freetube.src {
|
||||||
|
# inherit (pkgs) system;
|
||||||
|
# config = pkgs.config;
|
||||||
|
# }).freetube;
|
||||||
|
dcts-client-shipping = pkgs.callPackage ../../../pkgs/dcts-client-shipping/package.nix { inherit sources; };
|
||||||
in {
|
in {
|
||||||
options.mods.social.enable =
|
options.mods.social.enable =
|
||||||
lib.mkEnableOption "enables social media clients";
|
lib.mkEnableOption "enables social media clients";
|
||||||
|
|
@ -17,12 +23,14 @@ in {
|
||||||
# Communication
|
# Communication
|
||||||
# kotatogram-desktop
|
# kotatogram-desktop
|
||||||
signal-desktop
|
signal-desktop
|
||||||
abaddon
|
# abaddon
|
||||||
vesktop-nogain
|
# vesktop-nogain
|
||||||
# (callPackage ./packages/librediscord.nix {})
|
# (callPackage ./packages/librediscord.nix {})
|
||||||
jami
|
jami
|
||||||
|
dcts-client-shipping
|
||||||
|
|
||||||
# Video
|
# Video
|
||||||
|
# freetube-custom
|
||||||
freetube
|
freetube
|
||||||
|
|
||||||
# Security
|
# Security
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@
|
||||||
./zellij
|
./zellij
|
||||||
./opencode
|
./opencode
|
||||||
./gh.nix
|
./gh.nix
|
||||||
|
./worktrunk.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
config = lib.mkIf osConfig.mods.desktop.enable {
|
config = lib.mkIf osConfig.mods.desktop.enable {
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,12 @@ in {
|
||||||
enableNushellIntegration = lib.mkIf config.mods.terminal.nushell.enable true;
|
enableNushellIntegration = lib.mkIf config.mods.terminal.nushell.enable true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.worktrunk = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = lib.mkIf config.mods.terminal.zsh.enable true;
|
||||||
|
enableNushellIntegration = lib.mkIf config.mods.terminal.nushell.enable true;
|
||||||
|
};
|
||||||
|
|
||||||
home.sessionVariables.EDITOR = "nvim";
|
home.sessionVariables.EDITOR = "nvim";
|
||||||
programs.zsh.sessionVariables = lib.mkIf config.mods.terminal.zsh.enable {
|
programs.zsh.sessionVariables = lib.mkIf config.mods.terminal.zsh.enable {
|
||||||
EDITOR = "nvim";
|
EDITOR = "nvim";
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
|
sources,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.mods.terminal;
|
cfg = config.mods.terminal;
|
||||||
|
|
@ -12,6 +13,10 @@ in {
|
||||||
options.mods.terminal.hr.enable = lib.mkEnableOption "Hefring (Work Tooling)";
|
options.mods.terminal.hr.enable = lib.mkEnableOption "Hefring (Work Tooling)";
|
||||||
|
|
||||||
config = lib.mkIf cfg.hr.enable {
|
config = lib.mkIf cfg.hr.enable {
|
||||||
|
home.packages = [
|
||||||
|
(pkgs.callPackage ./mender-cli.nix {inherit sources;})
|
||||||
|
];
|
||||||
|
|
||||||
programs.nushell = lib.mkIf cfg.nushell.enable {
|
programs.nushell = lib.mkIf cfg.nushell.enable {
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
$env.PROJECT_ID = if ($env | get -o PROJECT_ID | is-empty) { "mk2-test" } else { $env.PROJECT_ID }
|
$env.PROJECT_ID = if ($env | get -o PROJECT_ID | is-empty) { "mk2-test" } else { $env.PROJECT_ID }
|
||||||
|
|
|
||||||
|
|
@ -2,31 +2,28 @@
|
||||||
lib,
|
lib,
|
||||||
stdenv,
|
stdenv,
|
||||||
buildGoModule,
|
buildGoModule,
|
||||||
fetchFromGitHub,
|
sources,
|
||||||
makeWrapper,
|
makeWrapper,
|
||||||
installShellFiles,
|
installShellFiles,
|
||||||
|
pkg-config,
|
||||||
|
openssl,
|
||||||
xz,
|
xz,
|
||||||
go,
|
go,
|
||||||
}:
|
}:
|
||||||
buildGoModule rec {
|
let
|
||||||
pname = "mender-cli";
|
src = sources.mender-cli;
|
||||||
version = "1.12.0";
|
in
|
||||||
|
buildGoModule {
|
||||||
src = fetchFromGitHub {
|
inherit (src) pname version src vendorHash;
|
||||||
owner = "mendersoftware";
|
|
||||||
repo = "mender-cli";
|
|
||||||
rev = version;
|
|
||||||
sha256 = "sha256-Pf87wTHXcFlnYsgx7ieiIJ9PWJFPUkFJYTkKJKmMFEQ=";
|
|
||||||
};
|
|
||||||
|
|
||||||
vendorHash = "sha256-MqyBa+wsbuXqtM4DL/QGBUWuEYlG8BRxIXq7O1LJUyM=";
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
makeWrapper
|
makeWrapper
|
||||||
installShellFiles
|
installShellFiles
|
||||||
|
pkg-config
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
openssl
|
||||||
xz
|
xz
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -48,7 +45,7 @@ buildGoModule rec {
|
||||||
description = "Mender CLI tool to simplify integration between the Mender server and cloud services like continuous integration (CI)/build automation";
|
description = "Mender CLI tool to simplify integration between the Mender server and cloud services like continuous integration (CI)/build automation";
|
||||||
mainProgram = "mender-cli";
|
mainProgram = "mender-cli";
|
||||||
homepage = "https://github.com/mendersoftware/mender-cli/";
|
homepage = "https://github.com/mendersoftware/mender-cli/";
|
||||||
changelog = "https://github.com/mendersoftware/mender-cli/releases/tag/${version}";
|
changelog = "https://github.com/mendersoftware/mender-cli/releases/tag/${src.version}";
|
||||||
license = lib.licenses.asl20;
|
license = lib.licenses.asl20;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
programs.opencode = {
|
programs.opencode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
"plugin" = ["opencode-gemini-auth"];
|
"plugin" = ["opencode-gemini-auth" "opencode-anthropic-oauth"];
|
||||||
|
|
||||||
"permission" = {
|
"permission" = {
|
||||||
"bash" = {
|
"bash" = {
|
||||||
|
|
|
||||||
103
modules/home/terminal/worktrunk.nix
Normal file
103
modules/home/terminal/worktrunk.nix
Normal file
|
|
@ -0,0 +1,103 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib) mkIf types;
|
||||||
|
|
||||||
|
cfg = config.programs.worktrunk;
|
||||||
|
in {
|
||||||
|
options.programs.worktrunk = {
|
||||||
|
enable = lib.mkEnableOption "worktrunk, a CLI tool for managing work sessions";
|
||||||
|
|
||||||
|
package = lib.mkPackageOption pkgs "worktrunk" {nullable = true;};
|
||||||
|
|
||||||
|
enableBashIntegration = lib.hm.shell.mkBashIntegrationOption {inherit config;};
|
||||||
|
|
||||||
|
enableFishIntegration = lib.hm.shell.mkFishIntegrationOption {inherit config;};
|
||||||
|
|
||||||
|
enableNushellIntegration = lib.hm.shell.mkNushellIntegrationOption {inherit config;};
|
||||||
|
|
||||||
|
enableZshIntegration = lib.hm.shell.mkZshIntegrationOption {inherit config;};
|
||||||
|
|
||||||
|
shellWrapperName = lib.mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "wt";
|
||||||
|
example = "wt";
|
||||||
|
description = ''
|
||||||
|
Name of the shell wrapper to be called.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = mkIf (cfg.package != null) [cfg.package];
|
||||||
|
|
||||||
|
programs = let
|
||||||
|
bashIntegration = ''
|
||||||
|
${cfg.shellWrapperName}() {
|
||||||
|
local directive_file=$(mktemp)
|
||||||
|
WORKTRUNK_DIRECTIVE_FILE="$directive_file" command ${
|
||||||
|
if cfg.shellWrapperName != "wt"
|
||||||
|
then "wt"
|
||||||
|
else "\${WORKTRUNK_BIN:-wt}"
|
||||||
|
} "$@"
|
||||||
|
if [[ -s "$directive_file" ]]; then
|
||||||
|
source "$directive_file"
|
||||||
|
fi
|
||||||
|
rm -f "$directive_file"
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
fishIntegration = ''
|
||||||
|
set -l directive_file (mktemp)
|
||||||
|
${
|
||||||
|
if cfg.shellWrapperName != "wt"
|
||||||
|
then ''
|
||||||
|
env WORKTRUNK_DIRECTIVE_FILE=$directive_file wt $argv''
|
||||||
|
else ''
|
||||||
|
set -q WORKTRUNK_BIN; or set -l WORKTRUNK_BIN wt
|
||||||
|
env WORKTRUNK_DIRECTIVE_FILE=$directive_file $WORKTRUNK_BIN $argv''
|
||||||
|
}
|
||||||
|
if test -s "$directive_file"
|
||||||
|
set -l directive (string collect < "$directive_file")
|
||||||
|
eval $directive
|
||||||
|
end
|
||||||
|
command rm -f "$directive_file"
|
||||||
|
'';
|
||||||
|
|
||||||
|
nushellIntegration = ''
|
||||||
|
def --env --wrapped ${cfg.shellWrapperName} [...args] {
|
||||||
|
let directive_file = (mktemp --tmpdir)
|
||||||
|
let worktrunk_bin = (${
|
||||||
|
if cfg.shellWrapperName != "wt"
|
||||||
|
then "'wt'"
|
||||||
|
else "$env.WORKTRUNK_BIN? | default 'wt'"
|
||||||
|
})
|
||||||
|
with-env { WORKTRUNK_DIRECTIVE_FILE: $directive_file } {
|
||||||
|
^$worktrunk_bin ...$args
|
||||||
|
}
|
||||||
|
if ($directive_file | path exists) {
|
||||||
|
let directives = open $directive_file --raw | str trim | lines
|
||||||
|
for directive in $directives {
|
||||||
|
if ($directive | str starts-with "cd '") {
|
||||||
|
let target_dir = $directive | str substring 4..-2
|
||||||
|
cd $target_dir
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rm -f $directive_file
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
bash.initExtra = mkIf cfg.enableBashIntegration bashIntegration;
|
||||||
|
|
||||||
|
zsh.initContent = mkIf cfg.enableZshIntegration bashIntegration;
|
||||||
|
|
||||||
|
fish.functions.${cfg.shellWrapperName} = mkIf cfg.enableFishIntegration fishIntegration;
|
||||||
|
|
||||||
|
nushell.extraConfig = mkIf cfg.enableNushellIntegration nushellIntegration;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -103,14 +103,6 @@ in
|
||||||
127.0.0.1 word.local
|
127.0.0.1 word.local
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Wildcard DNS: *.word.local -> 127.0.0.1 via NetworkManager's built-in dnsmasq
|
|
||||||
networking.networkmanager.dns = "dnsmasq";
|
|
||||||
# Force resolv.conf to use local dnsmasq so wildcard DNS is actually queried
|
|
||||||
networking.resolvconf.useLocalResolver = true;
|
|
||||||
environment.etc."NetworkManager/dnsmasq.d/word-local.conf".text = ''
|
|
||||||
address=/.word.local/127.0.0.1
|
|
||||||
'';
|
|
||||||
|
|
||||||
# gateway =
|
# gateway =
|
||||||
# "${pkgs.networkmanager}/bin/nmcli dev show ${interface} | ${pkgs.gnugrep}/bin/fgrep IP4.GATEWAY | ${pkgs.awk}/bin/awk {print $2}";
|
# "${pkgs.networkmanager}/bin/nmcli dev show ${interface} | ${pkgs.gnugrep}/bin/fgrep IP4.GATEWAY | ${pkgs.awk}/bin/awk {print $2}";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,9 @@
|
||||||
{ pkgs, lib, config, ... }: {
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
options.mods.server.gaming = {
|
options.mods.server.gaming = {
|
||||||
enable = lib.mkEnableOption {
|
enable = lib.mkEnableOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -6,7 +11,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [ ./astral.nix ./vrising.nix ./statech.nix ];
|
imports = [./astral.nix ./vrising.nix ./statech.nix ./enshrouded.nix];
|
||||||
|
|
||||||
config = lib.mkIf config.mods.server.gaming.enable {
|
config = lib.mkIf config.mods.server.gaming.enable {
|
||||||
mods.server.astral.enable = true;
|
mods.server.astral.enable = true;
|
||||||
|
|
|
||||||
117
modules/nixos/server/gaming/enshrouded.nix
Normal file
117
modules/nixos/server/gaming/enshrouded.nix
Normal file
|
|
@ -0,0 +1,117 @@
|
||||||
|
# Auto-generated by compose2nix.
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.mods.server.enshrouded;
|
||||||
|
in
|
||||||
|
with lib; {
|
||||||
|
options.mods.server.enshrouded = {
|
||||||
|
enable = mkEnableOption {
|
||||||
|
default = false;
|
||||||
|
description = "enables enshrouded containers";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
# Runtime
|
||||||
|
virtualisation.docker = {
|
||||||
|
enable = true;
|
||||||
|
autoPrune.enable = true;
|
||||||
|
};
|
||||||
|
virtualisation.oci-containers.backend = "docker";
|
||||||
|
|
||||||
|
networking.firewall.allowedUDPPorts = [15637];
|
||||||
|
|
||||||
|
# Containers
|
||||||
|
virtualisation.oci-containers.containers."enshrouded" = {
|
||||||
|
image = "mornedhels/enshrouded-server:dev-proton";
|
||||||
|
environment = {
|
||||||
|
"PGID" = "4711";
|
||||||
|
"PUID" = "4711";
|
||||||
|
"SERVER_NAME" = "Blarch";
|
||||||
|
"UPDATE_CRON" = "*/30 * * * *";
|
||||||
|
"log_level" = "50";
|
||||||
|
"SERVER_ROLE_1_NAME" = "Friends";
|
||||||
|
"SERVER_ROLE_1_PASSWORD" = "Blarch157";
|
||||||
|
"SERVER_ROLE_1_CAN_ACCESS_INVENTORIES" = "true";
|
||||||
|
"SERVER_ROLE_1_CAN_EDIT_WORLD" = "true";
|
||||||
|
"SERVER_ROLE_1_CAN_EDIT_BASE" = "true";
|
||||||
|
"SERVER_ROLE_1_CAN_EXTEND_BASE" = "true";
|
||||||
|
"SERVER_ROLE_1_RESERVED_SLOTS" = "6";
|
||||||
|
};
|
||||||
|
volumes = [
|
||||||
|
"/home/muon/enshrouded-server/game:/opt/enshrouded:rw"
|
||||||
|
];
|
||||||
|
ports = [
|
||||||
|
"15637:15637/udp"
|
||||||
|
];
|
||||||
|
log-driver = "journald";
|
||||||
|
extraOptions = [
|
||||||
|
"--hostname=enshrouded"
|
||||||
|
"--network-alias=enshrouded"
|
||||||
|
"--network=enshrouded_default"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
systemd.services."docker-enshrouded" = {
|
||||||
|
serviceConfig = {
|
||||||
|
Restart = lib.mkOverride 90 "always";
|
||||||
|
RestartMaxDelaySec = lib.mkOverride 90 "1m";
|
||||||
|
RestartSec = lib.mkOverride 90 "100ms";
|
||||||
|
RestartSteps = lib.mkOverride 90 9;
|
||||||
|
};
|
||||||
|
after = [
|
||||||
|
"docker-network-enshrouded_default.service"
|
||||||
|
];
|
||||||
|
requires = [
|
||||||
|
"docker-network-enshrouded_default.service"
|
||||||
|
];
|
||||||
|
partOf = [
|
||||||
|
"docker-compose-enshrouded-root.target"
|
||||||
|
];
|
||||||
|
wantedBy = [
|
||||||
|
"docker-compose-enshrouded-root.target"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Networks
|
||||||
|
systemd.services."docker-network-enshrouded_default" = {
|
||||||
|
path = [pkgs.docker];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
ExecStop = "docker network rm -f enshrouded_default";
|
||||||
|
};
|
||||||
|
script = ''
|
||||||
|
docker network inspect enshrouded_default || docker network create enshrouded_default
|
||||||
|
'';
|
||||||
|
partOf = ["docker-compose-enshrouded-root.target"];
|
||||||
|
wantedBy = ["docker-compose-enshrouded-root.target"];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Builds
|
||||||
|
systemd.services."docker-build-enshrouded" = {
|
||||||
|
path = [pkgs.docker pkgs.git];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
TimeoutSec = 300;
|
||||||
|
};
|
||||||
|
script = ''
|
||||||
|
cd /home/muon/enshrouded-server
|
||||||
|
docker build -t mornedhels/enshrouded-server:dev-proton -f dockerfiles/proton.Dockerfile .
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# Root service
|
||||||
|
# When started, this will automatically create all resources and start
|
||||||
|
# the containers. When stopped, this will teardown all resources.
|
||||||
|
systemd.targets."docker-compose-enshrouded-root" = {
|
||||||
|
unitConfig = {
|
||||||
|
Description = "Root target generated by compose2nix.";
|
||||||
|
};
|
||||||
|
wantedBy = ["multi-user.target"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
# ["freetube"]
|
||||||
|
# src.git = "https://github.com/ddogfoodd/nixpkgs.git"
|
||||||
|
# src.branch = "update-freetube"
|
||||||
|
# fetch.git = "https://github.com/ddogfoodd/nixpkgs.git"
|
||||||
|
|
||||||
["vesktop.micfix"]
|
["vesktop.micfix"]
|
||||||
src.manual = "1.0.2"
|
src.manual = "1.0.2"
|
||||||
fetch.url = "https://codeberg.org/muon/gists/raw/branch/main/micfix.patch"
|
fetch.url = "https://codeberg.org/muon/gists/raw/branch/main/micfix.patch"
|
||||||
|
|
@ -152,3 +157,11 @@ src.webpage = "https://thunderstore.io/c/valheim/p/BentoG/MissingPieces/"
|
||||||
src.regex = "v(\\d+\\.\\d+\\.\\d+)"
|
src.regex = "v(\\d+\\.\\d+\\.\\d+)"
|
||||||
fetch.tarball = "https://thunderstore.io/package/download/BentoG/MissingPieces/$ver/"
|
fetch.tarball = "https://thunderstore.io/package/download/BentoG/MissingPieces/$ver/"
|
||||||
|
|
||||||
|
["mender-cli"]
|
||||||
|
src.github = "mendersoftware/mender-cli"
|
||||||
|
fetch.github = "mendersoftware/mender-cli"
|
||||||
|
|
||||||
|
["dcts-client-shipping"]
|
||||||
|
src.github = "hackthedev/dcts-client-shipping"
|
||||||
|
fetch.github = "hackthedev/dcts-client-shipping"
|
||||||
|
|
||||||
|
|
|
||||||
120
pkgs/dcts-client-shipping/package.nix
Normal file
120
pkgs/dcts-client-shipping/package.nix
Normal file
|
|
@ -0,0 +1,120 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
stdenv,
|
||||||
|
stdenvNoCC,
|
||||||
|
bun,
|
||||||
|
electron,
|
||||||
|
fetchFromGitHub,
|
||||||
|
makeWrapper,
|
||||||
|
makeBinaryWrapper,
|
||||||
|
makeDesktopItem,
|
||||||
|
copyDesktopItems,
|
||||||
|
sources,
|
||||||
|
writableTmpDirAsHomeHook,
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||||
|
pname = "dcts-client-shipping";
|
||||||
|
version = sources.dcts-client-shipping.version;
|
||||||
|
src = sources.dcts-client-shipping.src;
|
||||||
|
|
||||||
|
node_modules = stdenvNoCC.mkDerivation {
|
||||||
|
pname = "${finalAttrs.pname}-node_modules";
|
||||||
|
inherit (finalAttrs) version src;
|
||||||
|
|
||||||
|
impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [
|
||||||
|
"GIT_PROXY_COMMAND"
|
||||||
|
"SOCKS_SERVER"
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
bun
|
||||||
|
writableTmpDirAsHomeHook
|
||||||
|
];
|
||||||
|
|
||||||
|
dontConfigure = true;
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
runHook preBuild
|
||||||
|
|
||||||
|
cd electron
|
||||||
|
bun install \
|
||||||
|
--cpu="*" \
|
||||||
|
--frozen-lockfile \
|
||||||
|
--ignore-scripts \
|
||||||
|
--no-progress \
|
||||||
|
--os="*"
|
||||||
|
|
||||||
|
runHook postBuild
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p $out/electron
|
||||||
|
cp -R node_modules $out/electron/
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
# NOTE: Required else we get errors that our fixed-output derivation references store paths
|
||||||
|
dontFixup = true;
|
||||||
|
|
||||||
|
outputHash = "sha256-TwfxQeK1KkKY1n/735sTxcAQfR5hUrONJcWeIaM47SE=";
|
||||||
|
outputHashAlgo = "sha256";
|
||||||
|
outputHashMode = "recursive";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
bun
|
||||||
|
makeBinaryWrapper
|
||||||
|
copyDesktopItems
|
||||||
|
writableTmpDirAsHomeHook
|
||||||
|
];
|
||||||
|
|
||||||
|
desktopItems = [
|
||||||
|
(makeDesktopItem {
|
||||||
|
name = "dcts";
|
||||||
|
desktopName = "DCTS";
|
||||||
|
comment = "DCTS Desktop Client - Secure messaging";
|
||||||
|
exec = "dcts";
|
||||||
|
icon = "dcts";
|
||||||
|
categories = [ "Network" "InstantMessaging" ];
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
runHook preBuild
|
||||||
|
|
||||||
|
# Copy node_modules from the separate derivation
|
||||||
|
cp -R ${finalAttrs.node_modules}/electron/node_modules electron/
|
||||||
|
|
||||||
|
runHook postBuild
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p $out/lib/dcts
|
||||||
|
cp -R electron/* $out/lib/dcts/
|
||||||
|
|
||||||
|
# Create wrapper script
|
||||||
|
makeWrapper ${electron}/bin/electron $out/bin/dcts \
|
||||||
|
--add-flags $out/lib/dcts \
|
||||||
|
--set ELECTRON_OVERRIDE_DIST_PATH ${electron}/bin/
|
||||||
|
|
||||||
|
# Install icon
|
||||||
|
install -Dm644 electron/icon.png $out/share/icons/hicolor/256x256/apps/dcts.png
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "DCTS Desktop Client - Electron app for secure messaging";
|
||||||
|
homepage = "https://github.com/hackthedev/dcts-client-shipping";
|
||||||
|
license = lib.licenses.isc;
|
||||||
|
maintainers = [ ];
|
||||||
|
platforms = lib.platforms.linux;
|
||||||
|
mainProgram = "dcts";
|
||||||
|
};
|
||||||
|
})
|
||||||
55
pkgs/nvft/README.md
Normal file
55
pkgs/nvft/README.md
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
# nvft (nvfetcher + tools)
|
||||||
|
|
||||||
|
A Nix package that combines nvfetcher source updates with automatic Go vendor hash calculation.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Enter the nix-shell (makes nvft available)
|
||||||
|
nix-shell
|
||||||
|
|
||||||
|
# Run the updater
|
||||||
|
nvft
|
||||||
|
```
|
||||||
|
|
||||||
|
This will:
|
||||||
|
1. Save existing vendorHash and source hashes
|
||||||
|
2. Run `nvfetcher` to update all source versions and hashes in `_sources/generated.nix`
|
||||||
|
3. Restore saved vendorHash values
|
||||||
|
4. Check if source hash changed - if yes, recalculate vendorHash; if no, skip (fast!)
|
||||||
|
5. Update `vendorHash` in `_sources/generated.nix` only if needed
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
Go packages that need vendor hash updates are configured in the `GO_PACKAGES` array within the script.
|
||||||
|
|
||||||
|
Currently configured packages:
|
||||||
|
- `mender-cli` -> `modules/home/terminal/hr/mender-cli.nix`
|
||||||
|
|
||||||
|
To add more Go packages, edit `pkgs/nvft/default.nix` and add entries to the `GO_PACKAGES` array.
|
||||||
|
|
||||||
|
## How it Works
|
||||||
|
|
||||||
|
For each Go package:
|
||||||
|
1. Compares old vs new source hash to detect updates
|
||||||
|
2. If source unchanged, keeps existing vendorHash (fast)
|
||||||
|
3. If source changed, creates a temporary build with `lib.fakeHash`
|
||||||
|
4. Attempts to build, which fails with the correct hash
|
||||||
|
5. Extracts the correct hash from the error message
|
||||||
|
6. Updates `vendorHash` directly in `_sources/generated.nix` alongside the source information
|
||||||
|
|
||||||
|
## Package Usage
|
||||||
|
|
||||||
|
Go packages read vendorHash from the sources:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
let
|
||||||
|
src = sources.mender-cli;
|
||||||
|
in
|
||||||
|
buildGoModule {
|
||||||
|
inherit (src) pname version src vendorHash;
|
||||||
|
# ... rest of package
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
The vendorHash is stored in `_sources/generated.nix` alongside the version and source hash, keeping all auto-generated values in one place.
|
||||||
250
pkgs/nvft/default.nix
Normal file
250
pkgs/nvft/default.nix
Normal file
|
|
@ -0,0 +1,250 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
writeShellApplication,
|
||||||
|
nvfetcher,
|
||||||
|
nix,
|
||||||
|
gnused,
|
||||||
|
coreutils,
|
||||||
|
}:
|
||||||
|
writeShellApplication {
|
||||||
|
name = "nvft";
|
||||||
|
|
||||||
|
runtimeInputs = [
|
||||||
|
nvfetcher
|
||||||
|
nix
|
||||||
|
gnused
|
||||||
|
coreutils
|
||||||
|
];
|
||||||
|
|
||||||
|
text = ''
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# Determine the config directory
|
||||||
|
if [[ -n "''${NVFETCHER_CONFIG_DIR:-}" ]]; then
|
||||||
|
CONFIG_DIR="$NVFETCHER_CONFIG_DIR"
|
||||||
|
elif [[ -f "nvfetcher.toml" ]]; then
|
||||||
|
CONFIG_DIR="$(pwd)"
|
||||||
|
else
|
||||||
|
CONFIG_DIR="''${HOME}/.config/home"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f "$CONFIG_DIR/nvfetcher.toml" ]]; then
|
||||||
|
echo "❌ Error: nvfetcher.toml not found in $CONFIG_DIR"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "🚀 Updating sources in $CONFIG_DIR"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
SOURCES_FILE="$CONFIG_DIR/_sources/generated.nix"
|
||||||
|
|
||||||
|
# Read Go packages from nvfetcher.toml that need vendorHash updates
|
||||||
|
declare -A GO_PACKAGES
|
||||||
|
# For now, hardcode the known Go packages
|
||||||
|
# TODO: Could parse nvfetcher.toml to auto-detect these
|
||||||
|
GO_PACKAGES["mender-cli"]="modules/home/terminal/hr/mender-cli.nix"
|
||||||
|
|
||||||
|
# Step 0: Save existing hashes before nvfetcher wipes them
|
||||||
|
echo "💾 Saving existing hashes..."
|
||||||
|
declare -A SAVED_VENDOR_HASHES
|
||||||
|
declare -A SAVED_SOURCE_HASHES
|
||||||
|
|
||||||
|
if [[ -f "$SOURCES_FILE" ]]; then
|
||||||
|
for source_name in "''${!GO_PACKAGES[@]}"; do
|
||||||
|
# Save vendorHash
|
||||||
|
saved_vendor=$(grep -A20 "^ $source_name = " "$SOURCES_FILE" | grep -oP 'vendorHash = "\K[^"]+' || echo "")
|
||||||
|
if [[ -n "$saved_vendor" ]]; then
|
||||||
|
SAVED_VENDOR_HASHES["$source_name"]="$saved_vendor"
|
||||||
|
echo " Saved $source_name vendorHash: $saved_vendor"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Save source sha256 to detect if source changed
|
||||||
|
saved_source=$(grep -A20 "^ $source_name = " "$SOURCES_FILE" | grep -oP 'sha256 = "\K[^"]+' || echo "")
|
||||||
|
if [[ -n "$saved_source" ]]; then
|
||||||
|
SAVED_SOURCE_HASHES["$source_name"]="$saved_source"
|
||||||
|
echo " Saved $source_name sourceHash: $saved_source"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Step 1: Run nvfetcher
|
||||||
|
echo "📦 Step 1: Running nvfetcher..."
|
||||||
|
cd "$CONFIG_DIR"
|
||||||
|
if nvfetcher; then
|
||||||
|
echo ""
|
||||||
|
echo "✅ nvfetcher completed"
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "⚠️ nvfetcher had some errors, but continuing with vendor hash updates..."
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Step 2: Restore saved vendorHash values
|
||||||
|
echo "📦 Step 2: Restoring saved vendorHash values..."
|
||||||
|
for source_name in "''${!SAVED_VENDOR_HASHES[@]}"; do
|
||||||
|
saved_hash="''${SAVED_VENDOR_HASHES[$source_name]}"
|
||||||
|
echo " Restoring $source_name: $saved_hash"
|
||||||
|
|
||||||
|
# Add vendorHash back after version line using awk
|
||||||
|
awk -v source="$source_name" -v hash="$saved_hash" '
|
||||||
|
/^ / && $0 ~ source" = " {in_block=1}
|
||||||
|
in_block && /version = / {print; print " vendorHash = \"" hash "\";"; next}
|
||||||
|
in_block && /^ };/ {in_block=0}
|
||||||
|
{print}
|
||||||
|
' "$SOURCES_FILE" > "$SOURCES_FILE.tmp" && mv "$SOURCES_FILE.tmp" "$SOURCES_FILE"
|
||||||
|
done
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Step 3: Update Go vendor hashes
|
||||||
|
echo "📦 Step 3: Checking for Go packages that need vendor hash updates..."
|
||||||
|
|
||||||
|
if [[ ! -f "$SOURCES_FILE" ]]; then
|
||||||
|
echo "❌ Error: Generated sources file not found at $SOURCES_FILE"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ''${#GO_PACKAGES[@]} -eq 0 ]]; then
|
||||||
|
echo "ℹ️ No Go packages configured for vendor hash updates"
|
||||||
|
echo ""
|
||||||
|
echo "🎉 All updates complete!"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
for source_name in "''${!GO_PACKAGES[@]}"; do
|
||||||
|
package_path="''${GO_PACKAGES[$source_name]}"
|
||||||
|
full_path="$CONFIG_DIR/$package_path"
|
||||||
|
|
||||||
|
if [[ ! -f "$full_path" ]]; then
|
||||||
|
echo "⚠️ Package file not found: $full_path"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "📦 Processing $source_name..."
|
||||||
|
|
||||||
|
# Check if vendorHash already exists in generated.nix
|
||||||
|
current_vendor=$(grep -A20 "^ $source_name = " "$SOURCES_FILE" | grep -oP 'vendorHash = "\K[^"]+' || echo "")
|
||||||
|
|
||||||
|
if [[ -n "$current_vendor" ]]; then
|
||||||
|
echo " Current vendorHash: $current_vendor"
|
||||||
|
else
|
||||||
|
echo " No vendorHash found"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if source hash changed (indicates version/source update)
|
||||||
|
new_source_hash=$(grep -A20 "^ $source_name = " "$SOURCES_FILE" | grep -oP 'sha256 = "\K[^"]+' || echo "")
|
||||||
|
old_source_hash="''${SAVED_SOURCE_HASHES[$source_name]:-}"
|
||||||
|
|
||||||
|
if [[ -n "$old_source_hash" ]] && [[ "$old_source_hash" == "$new_source_hash" ]]; then
|
||||||
|
echo " Source unchanged (hash: ''${new_source_hash:0:16}...)"
|
||||||
|
echo " ✨ Skipping vendorHash recalculation"
|
||||||
|
continue
|
||||||
|
elif [[ -n "$old_source_hash" ]]; then
|
||||||
|
echo " Source changed!"
|
||||||
|
echo " Old: ''${old_source_hash:0:16}..."
|
||||||
|
echo " New: ''${new_source_hash:0:16}..."
|
||||||
|
echo " → Need to recalculate vendorHash"
|
||||||
|
else
|
||||||
|
echo " New package, calculating vendorHash..."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Get version from generated sources
|
||||||
|
new_version=$(nix-instantiate --eval --strict --expr "
|
||||||
|
let pkgs = import <nixpkgs> {};
|
||||||
|
sources = pkgs.callPackage $SOURCES_FILE {};
|
||||||
|
in sources.''${source_name}.version
|
||||||
|
" 2>/dev/null | tr -d '"' || echo "")
|
||||||
|
|
||||||
|
if [[ -z "$new_version" ]]; then
|
||||||
|
echo "⚠️ Could not determine version from generated sources"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo " Version: $new_version"
|
||||||
|
|
||||||
|
# Create temporary build directory
|
||||||
|
temp_build=$(mktemp -d)
|
||||||
|
trap 'rm -rf "$temp_build"' EXIT
|
||||||
|
|
||||||
|
# Copy necessary files
|
||||||
|
cp -r "$CONFIG_DIR/_sources" "$temp_build/"
|
||||||
|
cp "$full_path" "$temp_build/package.nix"
|
||||||
|
|
||||||
|
# Create build expression
|
||||||
|
cat > "$temp_build/default.nix" << 'NIXEOF'
|
||||||
|
{ pkgs ? import <nixpkgs> {} }:
|
||||||
|
let
|
||||||
|
sources = pkgs.callPackage ./_sources/generated.nix {};
|
||||||
|
in
|
||||||
|
pkgs.callPackage ./package.nix { inherit sources; }
|
||||||
|
NIXEOF
|
||||||
|
|
||||||
|
# Temporarily replace hash with fakeHash
|
||||||
|
# Replace both inherited vendorHash and explicit vendorHash assignments
|
||||||
|
sed -i 's|inherit (src) pname version src vendorHash|inherit (src) pname version src;\n vendorHash = lib.fakeHash|g' "$temp_build/package.nix"
|
||||||
|
sed -i 's|vendorHash = "[^"]*";|vendorHash = lib.fakeHash;|g' "$temp_build/package.nix"
|
||||||
|
|
||||||
|
echo " Calculating correct vendor hash..."
|
||||||
|
|
||||||
|
# Build and extract the correct hash from error message
|
||||||
|
vendor_hash=$(nix-build "$temp_build/default.nix" 2>&1 | \
|
||||||
|
grep -oP 'got:\s+\K(sha256-[A-Za-z0-9+/=]+)' | \
|
||||||
|
head -1 || echo "")
|
||||||
|
|
||||||
|
if [[ -z "$vendor_hash" ]]; then
|
||||||
|
echo "⚠️ Could not calculate vendor hash"
|
||||||
|
echo " The package may have built successfully (current hash is correct)"
|
||||||
|
echo " Or there may be a build error unrelated to vendorHash"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo " New hash: $vendor_hash"
|
||||||
|
|
||||||
|
# Update the generated.nix file to include vendorHash
|
||||||
|
# Find the entry and add/update vendorHash after version
|
||||||
|
if grep -q "^ $source_name = " "$SOURCES_FILE"; then
|
||||||
|
# Check if vendorHash already exists
|
||||||
|
if grep -A20 "^ $source_name = " "$SOURCES_FILE" | grep -q "vendorHash"; then
|
||||||
|
# Update existing vendorHash using awk for better multiline handling
|
||||||
|
awk -v source="$source_name" -v hash="$vendor_hash" '
|
||||||
|
/^ / && $0 ~ source" = " {in_block=1}
|
||||||
|
in_block && /vendorHash = / {sub(/vendorHash = "[^"]*"/, "vendorHash = \"" hash "\"")}
|
||||||
|
in_block && /^ };/ {in_block=0}
|
||||||
|
{print}
|
||||||
|
' "$SOURCES_FILE" > "$SOURCES_FILE.tmp" && mv "$SOURCES_FILE.tmp" "$SOURCES_FILE"
|
||||||
|
echo "✅ Updated vendorHash in generated.nix"
|
||||||
|
else
|
||||||
|
# Add vendorHash after version line using awk
|
||||||
|
awk -v source="$source_name" -v hash="$vendor_hash" '
|
||||||
|
/^ / && $0 ~ source" = " {in_block=1}
|
||||||
|
in_block && /version = / {print; print " vendorHash = \"" hash "\";"; next}
|
||||||
|
in_block && /^ };/ {in_block=0}
|
||||||
|
{print}
|
||||||
|
' "$SOURCES_FILE" > "$SOURCES_FILE.tmp" && mv "$SOURCES_FILE.tmp" "$SOURCES_FILE"
|
||||||
|
echo "✅ Added vendorHash to generated.nix"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "⚠️ Could not find $source_name entry in generated.nix"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "🎉 All updates complete!"
|
||||||
|
echo ""
|
||||||
|
echo "Summary:"
|
||||||
|
echo " - Source versions and hashes updated by nvfetcher"
|
||||||
|
echo " - Go vendor hashes recalculated and updated"
|
||||||
|
echo ""
|
||||||
|
echo "Next steps:"
|
||||||
|
echo " - Review changes: git diff"
|
||||||
|
echo " - Test build: home-manager switch or similar"
|
||||||
|
echo " - Commit if everything works"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Update nvfetcher sources and Go vendor hashes";
|
||||||
|
mainProgram = "nvft";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
{pkgs ? import <nixpkgs> {}, ...}: {
|
{pkgs ? import <nixpkgs> {}, ...}:
|
||||||
|
let
|
||||||
|
nvft = pkgs.callPackage ./pkgs/nvft {};
|
||||||
|
in
|
||||||
|
{
|
||||||
default = pkgs.mkShell {
|
default = pkgs.mkShell {
|
||||||
NIX_CONFIG = "extra-experimental-features = nix-command flakes ca-derivations";
|
NIX_CONFIG = "extra-experimental-features = nix-command flakes ca-derivations";
|
||||||
nativeBuildInputs = with pkgs; [
|
nativeBuildInputs = with pkgs; [
|
||||||
|
|
@ -8,6 +12,7 @@
|
||||||
sops
|
sops
|
||||||
age
|
age
|
||||||
nvfetcher
|
nvfetcher
|
||||||
|
nvft
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue