Add nvfetcher

This commit is contained in:
muon 2025-05-24 09:19:56 +00:00
parent 38203669eb
commit b11fb1e8c3
7 changed files with 423 additions and 97 deletions

212
_sources/generated.json Normal file
View file

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

124
_sources/generated.nix Normal file
View file

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

View file

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

View file

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

75
nvfetcher.toml Normal file
View file

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

View file

@ -8,6 +8,7 @@
sops
age
nvfetcher
];
};
}

View file

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