From b1f52b2617902524088e50bf8eff506ba49bb795 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Fri, 1 Oct 2021 01:21:13 +0300 Subject: [PATCH] feat(web/static): Expose drvHash attribute on derivation This can be used for easy cachebusting of static assets, so that we can serve them all with a really long cache-time easily. Change-Id: I7c9f6beddec58e1caf02cda33bc587590217a939 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3660 Tested-by: BuildkiteCI Reviewed-by: sterni --- web/static/default.nix | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/web/static/default.nix b/web/static/default.nix index 518f21d6f..ef346f9c7 100644 --- a/web/static/default.nix +++ b/web/static/default.nix @@ -1,6 +1,12 @@ -{ pkgs, ... }: +# Expose all static assets as a folder. The derivation contains a +# `drvHash` attribute which can be used for cache-busting. +{ depot, lib, pkgs, ... }: -# Needs to be a derivation ... -pkgs.runCommand "tvl-static" {} '' +let storeDirLength = with builtins; (stringLength storeDir) + 1; +in lib.fix(self: pkgs.runCommand "tvl-static" { + passthru = { + drvHash = lib.substring storeDirLength 32 self.drvPath; + }; +} '' cp -r ${./.} $out -'' +'')