+ fetchFont = v: pkgs.runCommand "fetch-font" {
+ outputHashAlgo = "sha256";
+ outputHashMode = "recursive";
+ outputHash = v.sha256;
+ } ''
+ mkdir -p $out
+ ${pkgs.curl}/bin/curl -k --output $out/font.css -H "User-Agent: Firefox/100.0" "${v.url}"
+ cat $out/font.css | grep -o "https://[^ )]*" | while read url; do
+ filename=$(echo "$url" | sed -e "s@.*/@@g")
+ ${pkgs.curl}/bin/curl -k --output "$out/$filename" "$url"
+ sed -i -e "s@$url@./$filename@" "$out/font.css"
+ done
+ '';
+ fetchTgz = v: pkgs.runCommand "fetch-tgz" {
+ outputHashAlgo = "sha256";
+ outputHashMode = "recursive";
+ outputHash = v.sha256;
+ } ''
+ mkdir -p $out
+ cd $out
+ ${pkgs.curl}/bin/curl -L -k "${v.url}" | tar -xz --strip-components=${builtins.toString v.tgzRemoveComponents}
+ '';
+ fetchAsset = v:
+ if v.assetType == "googleFont"
+ then fetchFont v
+ else if v.assetType == "tgz"
+ then fetchTgz v
+ else pkgs.fetchurl { url = v.url; sha256 = v.sha256; };
+ assets_urls = lib.mapAttrs (k: fetchAsset) config.myEnv.tools.assets;