move hl2sdk platform data to json

This commit is contained in:
Robin Appelman 2026-07-09 17:11:40 +02:00
commit d460addced
3 changed files with 65 additions and 34 deletions

View file

@ -4,14 +4,9 @@
nix-update-script,
lib,
}: let
inherit (builtins) mapAttrs elem;
inherit (builtins) mapAttrs;
inherit (lib) optionals importJSON;
revisions = importJSON ./hl2sdks.json;
# from https://github.com/alliedmodders/hl2sdk-manifests/tree/master/manifests
linuxX86Sdks = ["episode1" "orangebox" "css" "hl2dm" "dods" "sdk2013" "tf2" "l4d" "l4d2" "nucleardawn" "csgo" "insurgency" "bms" "doi"];
linuxX64Sdks = ["mcv" "blade" "csgo" "tf2" "cs2" "sdk2013" "dota" "dods" "hl2dm" "deadlock" "insurgency" "css"];
isX86 = name: elem name linuxX86Sdks;
isX64 = name: elem name linuxX64Sdks;
fetchRev = {
rev,
sha256,
@ -43,9 +38,7 @@
};
meta = {
platforms =
optionals (isX86 sdkName) ["i686-linux"]
++ optionals (isX64 sdkName) ["x86_64-linux"];
platforms = sdk.platforms or [];
};
};
sdks = mapAttrs buildSdk revisions;

View file

@ -1,19 +1,23 @@
{
"csgo": {
"rev": "9cf2f325ea273559c7cae27b4f98518c18b8e322",
"sha256": "sha256-uJjVFbTQg7kh0BBT+dTQ+a0HIqrkrcVcMNYOteYywBk="
"sha256": "sha256-uJjVFbTQg7kh0BBT+dTQ+a0HIqrkrcVcMNYOteYywBk=",
"platforms": ["i686-linux", "x86_64-linux"]
},
"tf2": {
"rev": "f8ec7a5644b58ff0c8dcd94d8b7501b447f5a82d",
"sha256": "sha256-xh8T8bzEUL23mGnpTA4xlhLeVkf9OxMp2MhaBlGayQ4="
"sha256": "sha256-xh8T8bzEUL23mGnpTA4xlhLeVkf9OxMp2MhaBlGayQ4=",
"platforms": ["i686-linux", "x86_64-linux"]
},
"cs2": {
"rev": "f5836f20c033109d57fb08346bda80d614888488",
"sha256": "sha256-Gka6W6Oc7LMskOXvLNfVsHDU6FRa6bWSnVkqUSc0Mfg="
"sha256": "sha256-Gka6W6Oc7LMskOXvLNfVsHDU6FRa6bWSnVkqUSc0Mfg=",
"platforms": ["x86_64-linux"]
},
"swarm": {
"rev": "53355f2ea3671c8b543fca6c5a95ab884a620780",
"sha256": "sha256-x9SV0ldQeWe3hKUgl4YpePr103nouVUCczrrTvpGMDY="
"sha256": "sha256-x9SV0ldQeWe3hKUgl4YpePr103nouVUCczrrTvpGMDY=",
"platforms": ["i686-linux"]
},
"portal2": {
"rev": "f61c12390436451dbd2fe64362715ee9fc1cf1af",
@ -25,86 +29,107 @@
},
"nucleardawn": {
"rev": "38a4308cce4f0574d76ee36cedf20aa76054fbee",
"sha256": "sha256-m9f/lF2bsMM2H9V8wRJjULadf3nBOvN1t/9Rj9O8Myo="
"sha256": "sha256-m9f/lF2bsMM2H9V8wRJjULadf3nBOvN1t/9Rj9O8Myo=",
"platforms": ["i686-linux"]
},
"orangebox": {
"rev": "88bc34abdd51421afed7bd120d457cbdc372ccfa",
"sha256": "sha256-VXAHb09qwFcmrF7h0x6pYfisQCDb9ipnRZzCGHvY2K0="
"sha256": "sha256-VXAHb09qwFcmrF7h0x6pYfisQCDb9ipnRZzCGHvY2K0=",
"platforms": ["i686-linux"]
},
"bgt": {
"rev": "4ae5d9dbd614bf862f86682d9f8c95595e973288",
"sha256": "sha256-ZIRqivckjiTRetlJ+CXXbZWdBT7M8WeSf/3iHl0CJAw="
"sha256": "sha256-ZIRqivckjiTRetlJ+CXXbZWdBT7M8WeSf/3iHl0CJAw=",
"platforms": ["i686-linux"]
},
"darkm": {
"rev": "016cfd4f95e58f94131594a12b5a3aac9cd33f20",
"sha256": "sha256-XX/IhmkVV31c25CdTTItAdcSds2ZlWMhqDzd34BcaoU="
"sha256": "sha256-XX/IhmkVV31c25CdTTItAdcSds2ZlWMhqDzd34BcaoU=",
"platforms": ["i686-linux"]
},
"eye": {
"rev": "eea369b456eddf177d32cecbb4a32c0b144d0d02",
"sha256": "sha256-d448ipYITf1Hw0cGAX27QtUTomcvSj5XuITKIm46Gw8="
"sha256": "sha256-d448ipYITf1Hw0cGAX27QtUTomcvSj5XuITKIm46Gw8=",
"platforms": ["i686-linux"]
},
"bms": {
"rev": "51cd3e7b0b7fc81d672159c99299910a30b4c9ce",
"sha256": "sha256-RakfA20fk2VTtRne7NCl2UX8Q+5WRgeH5bBGIYe1f+Q="
"sha256": "sha256-RakfA20fk2VTtRne7NCl2UX8Q+5WRgeH5bBGIYe1f+Q=",
"platforms": ["i686-linux"]
},
"l4d": {
"rev": "0a8e862697335b12976a124daf728c38e975e381",
"sha256": "sha256-hmq5V+13hep/ul8ekQ11zq6IY80Ta885UjEsrIAZEKM="
"sha256": "sha256-hmq5V+13hep/ul8ekQ11zq6IY80Ta885UjEsrIAZEKM=",
"platforms": ["i686-linux"]
},
"contagion": {
"rev": "934ff16bbb89853c5d2825922cbfcada33b58f05",
"sha256": "sha256-F11caJolQAeoQSonP8nqVGNRC3j474YHkZ49Y3nSL1E="
"sha256": "sha256-F11caJolQAeoQSonP8nqVGNRC3j474YHkZ49Y3nSL1E=",
"platforms": ["i686-linux"]
},
"blade": {
"rev": "a736c9a6c676136f575af5056384851a8e1e788a",
"sha256": "sha256-8D1YRmE1x23r4gxbkv1wLthFnMnHM11EVFqtVNDONec="
"sha256": "sha256-8D1YRmE1x23r4gxbkv1wLthFnMnHM11EVFqtVNDONec=",
"platforms": ["x86_64-linux"]
},
"insurgency": {
"rev": "f66e087ee2993e8f09b27deed9f23c03321bd70d",
"sha256": "sha256-i5hOUavEikFdF3ll1O758rg7xkm9ZvBYhJU4hw1LWe4="
"sha256": "sha256-i5hOUavEikFdF3ll1O758rg7xkm9ZvBYhJU4hw1LWe4=",
"platforms": ["i686-linux"]
},
"pvkii": {
"rev": "f06b74a1d44116613e398787974b78e51fb1c8b8",
"sha256": "sha256-wfgTfFuxYCHdMzuvI5w/Xw/MGVYWmsWB7uWtttShHTM="
"sha256": "sha256-wfgTfFuxYCHdMzuvI5w/Xw/MGVYWmsWB7uWtttShHTM=",
"platforms": ["i686-linux"]
},
"episode1": {
"rev": "4b0cde271be6806b95842e78348009712a8b3fbe",
"sha256": "sha256-JNd+cInk8q0xmC0wKQoTBqD+H1wTSbUMqVVkQV4PZP0="
"sha256": "sha256-JNd+cInk8q0xmC0wKQoTBqD+H1wTSbUMqVVkQV4PZP0=",
"platforms": ["i686-linux"]
},
"dota": {
"rev": "ab11e586227623183bf6e7fa5e988fcb71080efb",
"sha256": "sha256-X5aqTMFTf9TjZS17pWh84KNshQ5F68r0tnX6hD/glNA="
"sha256": "sha256-X5aqTMFTf9TjZS17pWh84KNshQ5F68r0tnX6hD/glNA=",
"platforms": ["i686-linux"]
},
"mcv": {
"rev": "0b085deb66af320cee4046d5f5a89dfb044a2811",
"sha256": "sha256-stg1NVl+l5/MjeY8lVrSR/OVsBHyT2do6VEcOPNF9MY="
"sha256": "sha256-stg1NVl+l5/MjeY8lVrSR/OVsBHyT2do6VEcOPNF9MY=",
"platforms": ["i686-linux"]
},
"dods": {
"rev": "ece187a8147a8159c16f88305e3523cef6475ecf",
"sha256": "sha256-GAVs8ENKFde9BPQx9VAqdlFRiYe4DfbTHs8I+KJpoyc="
"sha256": "sha256-GAVs8ENKFde9BPQx9VAqdlFRiYe4DfbTHs8I+KJpoyc=",
"platforms": ["i686-linux", "x86_64-linux"]
},
"sdk2013": {
"rev": "4c56ee5bc8bfe00793abb7d40eb3f6fb040f10d2",
"sha256": "sha256-aWrQt7XIpXiomDICcSSqyxYsRZgpHnwX7eIX4o2V5jE="
"sha256": "sha256-aWrQt7XIpXiomDICcSSqyxYsRZgpHnwX7eIX4o2V5jE=",
"platforms": ["i686-linux"]
},
"hl2dm": {
"rev": "af883d5052349f09fbe641c99149b84769a62d01",
"sha256": "sha256-GAVs8ENKFde9BPQx9VAqdlFRiYe4DfbTHs8I+KJpoyc="
"sha256": "sha256-GAVs8ENKFde9BPQx9VAqdlFRiYe4DfbTHs8I+KJpoyc=",
"platforms": ["i686-linux", "x86_64-linux"]
},
"l4d2": {
"rev": "f48f11d80d599b41f75c506c2edfc81fe9935e9a",
"sha256": "sha256-cp0h2YlWSIfRyh+amIV8kyBLJ/oIXOkG7zsH3Wx8zZI="
"sha256": "sha256-cp0h2YlWSIfRyh+amIV8kyBLJ/oIXOkG7zsH3Wx8zZI=",
"platforms": ["i686-linux"]
},
"css": {
"rev": "64895cf48c68f5cef0470ee3f13ec449babc30ea",
"sha256": "sha256-8+k8Vg5R5/2kUcTSLRTY71rZ+MvCuSppLcfD+aUVuW0="
"sha256": "sha256-8+k8Vg5R5/2kUcTSLRTY71rZ+MvCuSppLcfD+aUVuW0=",
"platforms": ["i686-linux", "x86_64-linux"]
},
"doi": {
"rev": "ceefec48c282335da40a30f66bf498bd8e327d2f",
"sha256": "sha256-+6jrNi7yX6WrZLLq3qvkSVhhnCZsoY0cCoIgPvJXkL8="
"sha256": "sha256-+6jrNi7yX6WrZLLq3qvkSVhhnCZsoY0cCoIgPvJXkL8=",
"platforms": ["i686-linux"]
},
"deadlock": {
"rev": "0af9332394a4eb3fb904610543d266f54b7ad820",
"sha256": "sha256-WbOVrECtCKUwZEdoGV9c80t3gU6WopKVS89N7cKdhjg="
"sha256": "sha256-WbOVrECtCKUwZEdoGV9c80t3gU6WopKVS89N7cKdhjg=",
"platforms": ["x86_64-linux"]
}
}

View file

@ -12,6 +12,7 @@
system,
callPackage,
srcds-tf2,
sourcemod,
}: let
inherit (lib) importJSON map toString elem last replaceStrings naturalSort;
depotInputs = importJSON ./depots.json;
@ -73,6 +74,18 @@
};
in
final;
makeWithSourcemod = base: config: let
configFile = callPackage ./cfg.nix {
name = "server.cfg";
cfg = config;
};
final = symlinkJoin {
name = "srcds-tf2-src";
paths = [base configFile];
passthru = makeWiths final;
};
in
final;
makeWiths = base: {
withConfig = makeWithConfig base;
};