{ 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 ''