From 56449e59d7aabd1c06fb67a51a1e129b55cb9270 Mon Sep 17 00:00:00 2001 From: yuuko Date: Thu, 29 Aug 2024 21:51:04 -0700 Subject: break out of system config --- srcds-pkgs/mkdepot.nix | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 srcds-pkgs/mkdepot.nix (limited to 'srcds-pkgs/mkdepot.nix') diff --git a/srcds-pkgs/mkdepot.nix b/srcds-pkgs/mkdepot.nix new file mode 100644 index 0000000..8c1acaa --- /dev/null +++ b/srcds-pkgs/mkdepot.nix @@ -0,0 +1,19 @@ +{ lib, runCommand, fetchDepotFile }: +name: caches: ps: +with lib; +let + emitStep = { FileName, Flags, Chunks, ... }@file: + if bitAnd Flags 64 != 0 || Chunks == [] then '' + mkdir -p $out/'${FileName}' + '' else let drv = fetchDepotFile file; in '' + mkdir -p $out/'${drv.passthru.dirname}' + ln -s '${drv}' $out/'${FileName}' + ''; + emitManifest = cache: with cache.passthru; let + json = "${cache}/.DepotDownloader/${toString depot}_${manifest}.json"; + mkStep = file: emitStep (file // { inherit cache; }); + in concatMapStrings mkStep (importJSON json).Files; +in runCommand name {} '' + ${concatMapStringsSep "\n" emitManifest caches} + ${ps} +'' -- cgit v1.2.3