aboutsummaryrefslogtreecommitdiff
path: root/srcds-pkgs/fetchdepotcache.nix
blob: ab3b486416fd44320b2a25327b0f96dcfbfffb70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{ lib, runCommand
, depotdownloader, cacert
}:
{ app, depot, manifest, hash }:
let
  app' = builtins.toString app;
  depot' = builtins.toString depot;
in
runCommand "depotcache-${manifest}" {
  nativeBuildInputs = [ depotdownloader cacert ];
  outputHashMode = "recursive";
  outputHashAlgo = null;
  outputHash = hash;
  passthru = {
    inherit app depot manifest;
    depotdownloader = { inherit (depotdownloader) version; };
  };
} ''
  mkdir -p $out
  export HOME=$out
  cd $out

  ${if lib.versionAtLeast depotdownloader.version "3.1.0" then ''
    DepotDownloader \
      -app ${app'} \
      -depot ${depot'} \
      -manifest ${manifest} \
      -manifest-only \
      -dir .
  '' else ''
    DepotDownloader \
      -app ${app'} \
      -depot ${depot'} \
      -manifest ${manifest} \
      -filelist /dev/null \
      -dir .
  ''}

  rm -rf .local
''