diff --git a/nix/sourcemod/hl2sdk.nix b/nix/sourcemod/hl2sdk.nix index bc41be7..b333adc 100644 --- a/nix/sourcemod/hl2sdk.nix +++ b/nix/sourcemod/hl2sdk.nix @@ -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; diff --git a/nix/sourcemod/hl2sdks.json b/nix/sourcemod/hl2sdks.json index 66c03b5..13673d6 100644 --- a/nix/sourcemod/hl2sdks.json +++ b/nix/sourcemod/hl2sdks.json @@ -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"] } } diff --git a/nix/srcds/default.nix b/nix/srcds/default.nix index cd11a14..a437a98 100644 --- a/nix/srcds/default.nix +++ b/nix/srcds/default.nix @@ -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; };