From a6621bdf837f68f9d2b5c9f24d0e98fdb461ab77 Mon Sep 17 00:00:00 2001 From: Philip Taron Date: Sun, 9 Feb 2025 06:01:06 -0800 Subject: [PATCH 1/2] tailwindcss: use finalAttrs, run install hooks This allows for overriding this derivation with `postInstall` and better supports other sorts of overriding because of referencing `finalAttrs` instead of hard-coding the values from the initial derivation. --- pkgs/development/tools/tailwindcss/default.nix | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkgs/development/tools/tailwindcss/default.nix b/pkgs/development/tools/tailwindcss/default.nix index 51e52e1a49b4..f562cabd500f 100644 --- a/pkgs/development/tools/tailwindcss/default.nix +++ b/pkgs/development/tools/tailwindcss/default.nix @@ -29,12 +29,12 @@ let } .${system} or throwSystem; in -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "tailwindcss"; version = "3.4.17"; src = fetchurl { - url = "https://github.com/tailwindlabs/tailwindcss/releases/download/v${version}/tailwindcss-${plat}"; + url = "https://github.com/tailwindlabs/tailwindcss/releases/download/v${finalAttrs.version}/tailwindcss-${plat}"; inherit hash; }; @@ -44,13 +44,15 @@ stdenv.mkDerivation rec { dontFixup = true; installPhase = '' + runHook preInstall mkdir -p $out/bin - cp ${src} $out/bin/tailwindcss + cp ${finalAttrs.src} $out/bin/tailwindcss chmod 755 $out/bin/tailwindcss + runHook postInstall ''; passthru.tests.helptext = runCommand "tailwindcss-test-helptext" { } '' - ${tailwindcss}/bin/tailwindcss --help > $out + ${lib.getExe finalAttrs.finalPackage} --help > $out ''; passthru.updateScript = ./update.sh; @@ -63,4 +65,4 @@ stdenv.mkDerivation rec { mainProgram = "tailwindcss"; platforms = platforms.darwin ++ platforms.linux; }; -} +}) From ec820a8d452a8b8e0e52a998cf4fbfbfb611e998 Mon Sep 17 00:00:00 2001 From: Philip Taron Date: Sun, 9 Feb 2025 05:42:36 -0800 Subject: [PATCH 2/2] haskellPackages.tailwind: enhance override to provide `tailwind` binary This reverts to previous use of `tailwind` wrapper before 50f5683d8c8534c2f125f76b5ba6d4fa22ad4fc6 removed it. Since we already had an override, this makes it a little chunkier to maintain compatibility. --- pkgs/development/haskell-modules/configuration-nix.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index f2415d204dbe..c0ff75b80800 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -1426,6 +1426,16 @@ self: super: builtins.intersectAttrs super { pkgs.nodePackages."@tailwindcss/line-clamp" pkgs.nodePackages."@tailwindcss/typography" ]; + # Added a shim for the `tailwindcss` CLI entry point + nativeBuildInputs = (oa.nativeBuildInputs or []) ++ [ pkgs.buildPackages.makeBinaryWrapper ]; + postInstall = (oa.postInstall or "") + '' + nodePath="" + for p in "$out" "${pkgs.nodePackages.postcss}" $plugins; do + nodePath="$nodePath''${nodePath:+:}$p/lib/node_modules" + done + makeWrapper "$out/bin/tailwindcss" "$out/bin/tailwind" --prefix NODE_PATH : "$nodePath" + unset nodePath + ''; })) super.tailwind; emanote = addBuildDepend pkgs.stork super.emanote;