diff --git a/_sources/generated.json b/_sources/generated.json new file mode 100644 index 0000000..2b9a49f --- /dev/null +++ b/_sources/generated.json @@ -0,0 +1,212 @@ +{ + "valheim.aaacrafting": { + "cargoLocks": null, + "date": null, + "extract": null, + "name": "valheim.aaacrafting", + "passthru": null, + "pinned": false, + "src": { + "sha256": "sha256-cObo71X0wOzW3pZwAy7/dh7IRghu7EMPw7vWuoPWPlk=", + "type": "tarball", + "url": "https://thunderstore.io/package/download/Azumatt/AAA_Crafting/1.6.6/" + }, + "version": "1.6.6" + }, + "valheim.autostore": { + "cargoLocks": null, + "date": null, + "extract": null, + "name": "valheim.autostore", + "passthru": null, + "pinned": false, + "src": { + "sha256": "sha256-ooghhDinwLTwEpTTQFj/brdb9Yj5aLGr+zYsjrsq9A0=", + "type": "tarball", + "url": "https://thunderstore.io/package/download/Azumatt/AzuAutoStore/3.0.8/" + }, + "version": "3.0.8" + }, + "valheim.betternetworking": { + "cargoLocks": null, + "date": null, + "extract": null, + "name": "valheim.betternetworking", + "passthru": null, + "pinned": false, + "src": { + "sha256": "sha256-krgZ4B+MbIG/3CQUMkVIB/xrvvW1TbxB0cp1KwCTBN4=", + "type": "tarball", + "url": "https://thunderstore.io/package/download/CW_Jesse/BetterNetworking_Valheim/2.3.2/" + }, + "version": "2.3.2" + }, + "valheim.campsite": { + "cargoLocks": null, + "date": null, + "extract": null, + "name": "valheim.campsite", + "passthru": null, + "pinned": false, + "src": { + "sha256": "sha256-r3HTjfNy7ehr6bsjddr6mTA7T8VVXRhDfulIodjc0jc=", + "type": "tarball", + "url": "https://thunderstore.io/package/download/OdinPlus/OdinCampsite/1.5.8/" + }, + "version": "1.5.8" + }, + "valheim.cartography": { + "cargoLocks": null, + "date": null, + "extract": null, + "name": "valheim.cartography", + "passthru": null, + "pinned": false, + "src": { + "sha256": "sha256-u20BTiyF4e6QJ6OUK5migjdEpyzIGRDxLPJ3NdZNhvA=", + "type": "tarball", + "url": "https://thunderstore.io/package/download/Advize/CartographySkill/3.0.1/" + }, + "version": "3.0.1" + }, + "valheim.craftyboxes": { + "cargoLocks": null, + "date": null, + "extract": null, + "name": "valheim.craftyboxes", + "passthru": null, + "pinned": false, + "src": { + "sha256": "sha256-8bvHmONHuc9K0cgT42+W4oxQ6MusAv8v0IIVMerdYSA=", + "type": "tarball", + "url": "https://thunderstore.io/package/download/Azumatt/AzuCraftyBoxes/1.8.4/" + }, + "version": "1.8.4" + }, + "valheim.extendedinv": { + "cargoLocks": null, + "date": null, + "extract": null, + "name": "valheim.extendedinv", + "passthru": null, + "pinned": false, + "src": { + "sha256": "sha256-Xd7KdUm3c14iQBST31DAqs+bQF9hwYhUxE66o3lusrA=", + "type": "tarball", + "url": "https://thunderstore.io/package/download/Azumatt/AzuExtendedPlayerInventory/1.4.9/" + }, + "version": "1.4.9" + }, + "valheim.jotunn": { + "cargoLocks": null, + "date": null, + "extract": null, + "name": "valheim.jotunn", + "passthru": null, + "pinned": false, + "src": { + "sha256": "sha256-Tso4/Sf4Evt5kpBrVqZrjE9Qs2MSZV04WB1w+uX+TX8=", + "type": "tarball", + "url": "https://thunderstore.io/package/download/ValheimModding/Jotunn/2.25.0/" + }, + "version": "2.25.0" + }, + "valheim.multiuserchest": { + "cargoLocks": null, + "date": null, + "extract": null, + "name": "valheim.multiuserchest", + "passthru": null, + "pinned": false, + "src": { + "sha256": "sha256-PhXW6vBtEMnhE93RAALEucPU9q3VpdMrooFawWYXl2A=", + "type": "tarball", + "url": "https://thunderstore.io/package/download/MSchmoecker/MultiUserChest/0.6.1/" + }, + "version": "0.6.1" + }, + "valheim.quickteleport": { + "cargoLocks": null, + "date": null, + "extract": null, + "name": "valheim.quickteleport", + "passthru": null, + "pinned": false, + "src": { + "sha256": "sha256-YSAVthV994do/atQA+wGfillXeSYFlLJK6VyMcQNVKE=", + "type": "tarball", + "url": "https://thunderstore.io/package/download/OdinPlus/QuickTeleport/1.1.0/" + }, + "version": "1.1.0" + }, + "valheim.reclaim": { + "cargoLocks": null, + "date": null, + "extract": null, + "name": "valheim.reclaim", + "passthru": null, + "pinned": false, + "src": { + "sha256": "sha256-2cWdmspwid2h1ekfDFAngN25402pQnxZQhm4rX6BNhw=", + "type": "tarball", + "url": "https://thunderstore.io/package/download/Azumatt/Recycle_N_Reclaim/1.3.6/" + }, + "version": "1.3.6" + }, + "valheim.seedbed": { + "cargoLocks": null, + "date": null, + "extract": null, + "name": "valheim.seedbed", + "passthru": null, + "pinned": false, + "src": { + "sha256": "sha256-wm2gGSyMQ6r3lLpbpXtZYG7s+fFYvw5nZGmSW54Ayt4=", + "type": "tarball", + "url": "https://thunderstore.io/package/download/blacks7ar/SeedBed/1.2.7/" + }, + "version": "1.2.7" + }, + "valheim.servercharacters": { + "cargoLocks": null, + "date": null, + "extract": null, + "name": "valheim.servercharacters", + "passthru": null, + "pinned": false, + "src": { + "sha256": "sha256-aSB+G4nK3gf0yvMYWbICMFe3A0aCSr7nBH45G9ZdE9g=", + "type": "tarball", + "url": "https://thunderstore.io/package/download/Smoothbrain/ServerCharacters/1.4.16/" + }, + "version": "1.4.16" + }, + "valheim.smoothsave": { + "cargoLocks": null, + "date": null, + "extract": null, + "name": "valheim.smoothsave", + "passthru": null, + "pinned": false, + "src": { + "sha256": "sha256-v5Zn+0O0au8VDzO+302oCE7Z9s87I3nq+eK2WbVVyFo=", + "type": "tarball", + "url": "https://thunderstore.io/package/download/Smoothbrain/SmoothSave/1.0.5/" + }, + "version": "1.0.5" + }, + "valheim.swim": { + "cargoLocks": null, + "date": null, + "extract": null, + "name": "valheim.swim", + "passthru": null, + "pinned": false, + "src": { + "sha256": "sha256-QCEYnx0I6onWEAJy851wS0WdC35L18DyJL1wAAwHFaU=", + "type": "tarball", + "url": "https://thunderstore.io/package/download/blacks7ar/VikingsDoSwim/1.3.8/" + }, + "version": "1.3.8" + } +} \ No newline at end of file diff --git a/_sources/generated.nix b/_sources/generated.nix new file mode 100644 index 0000000..202c630 --- /dev/null +++ b/_sources/generated.nix @@ -0,0 +1,124 @@ +# This file was generated by nvfetcher, please do not modify it manually. +{ fetchgit, fetchurl, fetchFromGitHub, dockerTools }: +{ + "valheim.aaacrafting" = { + pname = "valheim.aaacrafting"; + version = "1.6.6"; + src = fetchTarball { + url = "https://thunderstore.io/package/download/Azumatt/AAA_Crafting/1.6.6/"; + sha256 = "sha256-cObo71X0wOzW3pZwAy7/dh7IRghu7EMPw7vWuoPWPlk="; + }; + }; + "valheim.autostore" = { + pname = "valheim.autostore"; + version = "3.0.8"; + src = fetchTarball { + url = "https://thunderstore.io/package/download/Azumatt/AzuAutoStore/3.0.8/"; + sha256 = "sha256-ooghhDinwLTwEpTTQFj/brdb9Yj5aLGr+zYsjrsq9A0="; + }; + }; + "valheim.betternetworking" = { + pname = "valheim.betternetworking"; + version = "2.3.2"; + src = fetchTarball { + url = "https://thunderstore.io/package/download/CW_Jesse/BetterNetworking_Valheim/2.3.2/"; + sha256 = "sha256-krgZ4B+MbIG/3CQUMkVIB/xrvvW1TbxB0cp1KwCTBN4="; + }; + }; + "valheim.campsite" = { + pname = "valheim.campsite"; + version = "1.5.8"; + src = fetchTarball { + url = "https://thunderstore.io/package/download/OdinPlus/OdinCampsite/1.5.8/"; + sha256 = "sha256-r3HTjfNy7ehr6bsjddr6mTA7T8VVXRhDfulIodjc0jc="; + }; + }; + "valheim.cartography" = { + pname = "valheim.cartography"; + version = "3.0.1"; + src = fetchTarball { + url = "https://thunderstore.io/package/download/Advize/CartographySkill/3.0.1/"; + sha256 = "sha256-u20BTiyF4e6QJ6OUK5migjdEpyzIGRDxLPJ3NdZNhvA="; + }; + }; + "valheim.craftyboxes" = { + pname = "valheim.craftyboxes"; + version = "1.8.4"; + src = fetchTarball { + url = "https://thunderstore.io/package/download/Azumatt/AzuCraftyBoxes/1.8.4/"; + sha256 = "sha256-8bvHmONHuc9K0cgT42+W4oxQ6MusAv8v0IIVMerdYSA="; + }; + }; + "valheim.extendedinv" = { + pname = "valheim.extendedinv"; + version = "1.4.9"; + src = fetchTarball { + url = "https://thunderstore.io/package/download/Azumatt/AzuExtendedPlayerInventory/1.4.9/"; + sha256 = "sha256-Xd7KdUm3c14iQBST31DAqs+bQF9hwYhUxE66o3lusrA="; + }; + }; + "valheim.jotunn" = { + pname = "valheim.jotunn"; + version = "2.25.0"; + src = fetchTarball { + url = "https://thunderstore.io/package/download/ValheimModding/Jotunn/2.25.0/"; + sha256 = "sha256-Tso4/Sf4Evt5kpBrVqZrjE9Qs2MSZV04WB1w+uX+TX8="; + }; + }; + "valheim.multiuserchest" = { + pname = "valheim.multiuserchest"; + version = "0.6.1"; + src = fetchTarball { + url = "https://thunderstore.io/package/download/MSchmoecker/MultiUserChest/0.6.1/"; + sha256 = "sha256-PhXW6vBtEMnhE93RAALEucPU9q3VpdMrooFawWYXl2A="; + }; + }; + "valheim.quickteleport" = { + pname = "valheim.quickteleport"; + version = "1.1.0"; + src = fetchTarball { + url = "https://thunderstore.io/package/download/OdinPlus/QuickTeleport/1.1.0/"; + sha256 = "sha256-YSAVthV994do/atQA+wGfillXeSYFlLJK6VyMcQNVKE="; + }; + }; + "valheim.reclaim" = { + pname = "valheim.reclaim"; + version = "1.3.6"; + src = fetchTarball { + url = "https://thunderstore.io/package/download/Azumatt/Recycle_N_Reclaim/1.3.6/"; + sha256 = "sha256-2cWdmspwid2h1ekfDFAngN25402pQnxZQhm4rX6BNhw="; + }; + }; + "valheim.seedbed" = { + pname = "valheim.seedbed"; + version = "1.2.7"; + src = fetchTarball { + url = "https://thunderstore.io/package/download/blacks7ar/SeedBed/1.2.7/"; + sha256 = "sha256-wm2gGSyMQ6r3lLpbpXtZYG7s+fFYvw5nZGmSW54Ayt4="; + }; + }; + "valheim.servercharacters" = { + pname = "valheim.servercharacters"; + version = "1.4.16"; + src = fetchTarball { + url = "https://thunderstore.io/package/download/Smoothbrain/ServerCharacters/1.4.16/"; + sha256 = "sha256-aSB+G4nK3gf0yvMYWbICMFe3A0aCSr7nBH45G9ZdE9g="; + }; + }; + "valheim.smoothsave" = { + pname = "valheim.smoothsave"; + version = "1.0.5"; + src = fetchTarball { + url = "https://thunderstore.io/package/download/Smoothbrain/SmoothSave/1.0.5/"; + sha256 = "sha256-v5Zn+0O0au8VDzO+302oCE7Z9s87I3nq+eK2WbVVyFo="; + }; + }; + "valheim.swim" = { + pname = "valheim.swim"; + version = "1.3.8"; + src = fetchTarball { + url = "https://thunderstore.io/package/download/blacks7ar/VikingsDoSwim/1.3.8/"; + sha256 = "sha256-QCEYnx0I6onWEAJy851wS0WdC35L18DyJL1wAAwHFaU="; + }; + }; +} diff --git a/flake.nix b/flake.nix index f828c54..f4a1be4 100644 --- a/flake.nix +++ b/flake.nix @@ -22,7 +22,11 @@ pkgs = import inputs.nixpkgs { inherit system; }; - utils = import ./utils.nix { inherit inputs system; }; + sources = import ./_sources/generated.nix { + inherit (pkgs) fetchurl fetchgit fetchFromGitHub dockerTools; + }; + + utils = import ./utils.nix { inherit inputs system sources; }; in { nixosConfigurations = { # desktop diff --git a/modules/nixos/unfree/valheim.nix b/modules/nixos/unfree/valheim.nix index 8f512e3..f78c1fe 100644 --- a/modules/nixos/unfree/valheim.nix +++ b/modules/nixos/unfree/valheim.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, config, inputs, ... }: { +{ pkgs, lib, config, inputs, sources, ... }: { options.mods.unfree.valheim = { enable = lib.mkEnableOption { default = false; @@ -19,99 +19,9 @@ worldName = "Smorld"; openFirewall = true; password = "notbeempty"; - bepinexMods = [ - (pkgs.fetchValheimThunderstoreMod { - owner = "ValheimModding"; - name = "Jotunn"; - version = "2.25.0"; - hash = "sha256-Tso4/Sf4Evt5kpBrVqZrjE9Qs2MSZV04WB1w+uX+TX8="; - }) - (pkgs.fetchValheimThunderstoreMod { - owner = "Azumatt"; - name = "AzuCraftyBoxes"; - version = "1.8.4"; - hash = "sha256-8bvHmONHuc9K0cgT42+W4oxQ6MusAv8v0IIVMerdYSA="; - }) - (pkgs.fetchValheimThunderstoreMod { - owner = "Azumatt"; - name = "AzuAutoStore"; - version = "3.0.8"; - hash = "sha256-ooghhDinwLTwEpTTQFj/brdb9Yj5aLGr+zYsjrsq9A0="; - }) - (pkgs.fetchValheimThunderstoreMod { - owner = "Azumatt"; - name = "AzuExtendedPlayerInventory"; - version = "1.4.9"; - hash = "sha256-Xd7KdUm3c14iQBST31DAqs+bQF9hwYhUxE66o3lusrA="; - }) - (pkgs.fetchValheimThunderstoreMod { - owner = "Azumatt"; - name = "Recycle_N_Reclaim"; - version = "1.3.6"; - hash = "sha256-2cWdmspwid2h1ekfDFAngN25402pQnxZQhm4rX6BNhw="; - }) - (pkgs.fetchValheimThunderstoreMod { - owner = "Azumatt"; - name = "AAA_Crafting"; - version = "1.6.6"; - hash = "sha256-cObo71X0wOzW3pZwAy7/dh7IRghu7EMPw7vWuoPWPlk="; - }) - (pkgs.fetchValheimThunderstoreMod { - owner = "OdinPlus"; - name = "OdinCampsite"; - version = "1.5.8"; - hash = "sha256-r3HTjfNy7ehr6bsjddr6mTA7T8VVXRhDfulIodjc0jc="; - }) - (pkgs.fetchValheimThunderstoreMod { - owner = "OdinPlus"; - name = "QuickTeleport"; - version = "1.1.0"; - hash = "sha256-YSAVthV994do/atQA+wGfillXeSYFlLJK6VyMcQNVKE="; - }) - (pkgs.fetchValheimThunderstoreMod { - owner = "MSchmoecker"; - name = "MultiUserChest"; - version = "0.6.1"; - hash = "sha256-PhXW6vBtEMnhE93RAALEucPU9q3VpdMrooFawWYXl2A="; - }) - (pkgs.fetchValheimThunderstoreMod { - owner = "Advize"; - name = "CartographySkill"; - version = "3.0.1"; - hash = "sha256-u20BTiyF4e6QJ6OUK5migjdEpyzIGRDxLPJ3NdZNhvA="; - }) - (pkgs.fetchValheimThunderstoreMod { - owner = "blacks7ar"; - name = "VikingsDoSwim"; - version = "1.3.8"; - hash = "sha256-QCEYnx0I6onWEAJy851wS0WdC35L18DyJL1wAAwHFaU="; - }) - (pkgs.fetchValheimThunderstoreMod { - owner = "blacks7ar"; - name = "SeedBed"; - version = "1.2.7"; - hash = "sha256-wm2gGSyMQ6r3lLpbpXtZYG7s+fFYvw5nZGmSW54Ayt4="; - }) - (pkgs.fetchValheimThunderstoreMod { - owner = "Smoothbrain"; - name = "ServerCharacters"; - version = "1.4.16"; - hash = "sha256-aSB+G4nK3gf0yvMYWbICMFe3A0aCSr7nBH45G9ZdE9g="; - }) - (pkgs.fetchValheimThunderstoreMod { - owner = "Smoothbrain"; - name = "SmoothSave"; - version = "1.0.5"; - hash = "sha256-v5Zn+0O0au8VDzO+302oCE7Z9s87I3nq+eK2WbVVyFo="; - }) - (pkgs.fetchValheimThunderstoreMod { - owner = "CW_Jesse"; - name = "BetterNetworking_Valheim"; - version = "2.3.2"; - hash = "sha256-krgZ4B+MbIG/3CQUMkVIB/xrvvW1TbxB0cp1KwCTBN4="; - }) - - ]; + bepinexMods = lib.mapAttrsToList (name: value: value.src) + (lib.attrsets.filterAttrs (n: v: lib.strings.hasPrefix "valheim." n) + sources); }; }; } diff --git a/nvfetcher.toml b/nvfetcher.toml new file mode 100644 index 0000000..1c299bb --- /dev/null +++ b/nvfetcher.toml @@ -0,0 +1,75 @@ +["valheim.jotunn"] +src.webpage = "https://thunderstore.io/c/valheim/p/ValheimModding/Jotunn/" +src.regex = "v(\\d+\\.\\d+\\.\\d+)" +fetch.tarball = "https://thunderstore.io/package/download/ValheimModding/Jotunn/$ver/" + +["valheim.craftyboxes"] +src.webpage = "https://thunderstore.io/c/valheim/p/Azumatt/AzuCraftyBoxes/" +src.regex = "v(\\d+\\.\\d+\\.\\d+)" +fetch.tarball = "https://thunderstore.io/package/download/Azumatt/AzuCraftyBoxes/$ver/" + +["valheim.autostore"] +src.webpage = "https://thunderstore.io/c/valheim/p/Azumatt/AzuAutoStore/" +src.regex = "v(\\d+\\.\\d+\\.\\d+)" +fetch.tarball = "https://thunderstore.io/package/download/Azumatt/AzuAutoStore/$ver/" + +["valheim.extendedinv"] +src.webpage = "https://thunderstore.io/c/valheim/p/Azumatt/AzuExtendedPlayerInventory/" +src.regex = "v(\\d+\\.\\d+\\.\\d+)" +fetch.tarball = "https://thunderstore.io/package/download/Azumatt/AzuExtendedPlayerInventory/$ver/" + +["valheim.reclaim"] +src.webpage = "https://thunderstore.io/c/valheim/p/Azumatt/Recycle_N_Reclaim/" +src.regex = "v(\\d+\\.\\d+\\.\\d+)" +fetch.tarball = "https://thunderstore.io/package/download/Azumatt/Recycle_N_Reclaim/$ver/" + +["valheim.aaacrafting"] +src.webpage = "https://thunderstore.io/c/valheim/p/Azumatt/AAA_Crafting/" +src.regex = "v(\\d+\\.\\d+\\.\\d+)" +fetch.tarball = "https://thunderstore.io/package/download/Azumatt/AAA_Crafting/$ver/" + +["valheim.campsite"] +src.webpage = "https://thunderstore.io/c/valheim/p/OdinPlus/OdinCampsite/" +src.regex = "v(\\d+\\.\\d+\\.\\d+)" +fetch.tarball = "https://thunderstore.io/package/download/OdinPlus/OdinCampsite/$ver/" + +["valheim.quickteleport"] +src.webpage = "https://thunderstore.io/c/valheim/p/OdinPlus/QuickTeleport/" +src.regex = "v(\\d+\\.\\d+\\.\\d+)" +fetch.tarball = "https://thunderstore.io/package/download/OdinPlus/QuickTeleport/$ver/" + +["valheim.multiuserchest"] +src.webpage = "https://thunderstore.io/c/valheim/p/MSchmoecker/MultiUserChest/" +src.regex = "v(\\d+\\.\\d+\\.\\d+)" +fetch.tarball = "https://thunderstore.io/package/download/MSchmoecker/MultiUserChest/$ver/" + +["valheim.cartography"] +src.webpage = "https://thunderstore.io/c/valheim/p/Advize/CartographySkill/" +src.regex = "v(\\d+\\.\\d+\\.\\d+)" +fetch.tarball = "https://thunderstore.io/package/download/Advize/CartographySkill/$ver/" + +["valheim.swim"] +src.webpage = "https://thunderstore.io/c/valheim/p/blacks7ar/VikingsDoSwim/" +src.regex = "v(\\d+\\.\\d+\\.\\d+)" +fetch.tarball = "https://thunderstore.io/package/download/blacks7ar/VikingsDoSwim/$ver/" + +["valheim.seedbed"] +src.webpage = "https://thunderstore.io/c/valheim/p/blacks7ar/SeedBed/" +src.regex = "v(\\d+\\.\\d+\\.\\d+)" +fetch.tarball = "https://thunderstore.io/package/download/blacks7ar/SeedBed/$ver/" + +["valheim.servercharacters"] +src.webpage = "https://thunderstore.io/c/valheim/p/Smoothbrain/ServerCharacters/" +src.regex = "v(\\d+\\.\\d+\\.\\d+)" +fetch.tarball = "https://thunderstore.io/package/download/Smoothbrain/ServerCharacters/$ver/" + +["valheim.smoothsave"] +src.webpage = "https://thunderstore.io/c/valheim/p/Smoothbrain/SmoothSave/" +src.regex = "v(\\d+\\.\\d+\\.\\d+)" +fetch.tarball = "https://thunderstore.io/package/download/Smoothbrain/SmoothSave/$ver/" + +["valheim.betternetworking"] +src.webpage = "https://thunderstore.io/c/valheim/p/CW_Jesse/BetterNetworking_Valheim/" +src.regex = "v(\\d+\\.\\d+\\.\\d+)" +fetch.tarball = "https://thunderstore.io/package/download/CW_Jesse/BetterNetworking_Valheim/$ver/" + diff --git a/shell.nix b/shell.nix index b4d1f3e..5d84124 100644 --- a/shell.nix +++ b/shell.nix @@ -8,6 +8,7 @@ sops age + nvfetcher ]; }; } diff --git a/utils.nix b/utils.nix index d81775d..672e982 100644 --- a/utils.nix +++ b/utils.nix @@ -1,7 +1,7 @@ -{ inputs, system, ... }: { +{ inputs, system, sources, ... }: { mkHost = host: inputs.nixpkgs.lib.nixosSystem { - specialArgs = { inherit inputs system; }; + specialArgs = { inherit inputs system sources; }; modules = [ host