Commit 3af1bb5f authored by adamjhf's avatar adamjhf
Browse files

tailwindcss_4: init at 4.0.4

parent 75cc09d6
Loading
Loading
Loading
Loading
+64 −0
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  fetchurl,
  runCommand,
  tailwindcss_4,
}:
let
  version = "4.0.4";
  inherit (stdenv.hostPlatform) system;
  throwSystem = throw "tailwindcss has not been packaged for ${system} yet.";

  plat =
    {
      aarch64-darwin = "macos-arm64";
      aarch64-linux = "linux-arm64";
      x86_64-darwin = "macos-x64";
      x86_64-linux = "linux-x64";
    }
    .${system} or throwSystem;

  hash =
    {
      aarch64-darwin = "sha256-hH9+h6jtXS9uT5mujDRTtjRM2onG8ZQsexOlMaIoXv4=";
      aarch64-linux = "sha256-wFUHnzVrwg/NsWEKHXMvgHSX8AuXUgwcktBt8fahu3A=";
      x86_64-darwin = "sha256-iMPHW3snWY9nWgRv6+0IS3Zh29LC0kYmzfwOcJM8xN0=";
      x86_64-linux = "sha256-ni5tivbbuV3U31ydmd9jBLBd8dH3cAAPFwSHmRAXubQ=";
    }
    .${system} or throwSystem;
in
stdenv.mkDerivation {
  inherit version;
  pname = "tailwindcss_4";

  src = fetchurl {
    url =
      "https://github.com/tailwindlabs/tailwindcss/releases/download/v${version}/tailwindcss-" + plat;
    inherit hash;
  };

  dontUnpack = true;
  dontConfigure = true;
  dontBuild = true;
  dontFixup = true;

  installPhase = ''
    install -D $src $out/bin/tailwindcss
  '';

  passthru.tests.helptext = runCommand "tailwindcss-test-helptext" { } ''
    ${tailwindcss_4}/bin/tailwindcss --help > $out
  '';
  passthru.updateScript = ./update.sh;

  meta = with lib; {
    description = "Command-line tool for the CSS framework with composable CSS classes, standalone v4 CLI";
    homepage = "https://tailwindcss.com/blog/tailwindcss-v4";
    license = licenses.mit;
    sourceProvenance = [ sourceTypes.binaryNativeCode ];
    maintainers = [ maintainers.adamjhf ];
    mainProgram = "tailwindcss";
    platforms = platforms.darwin ++ platforms.linux;
  };
}
+30 −0
Original line number Diff line number Diff line
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnused jq nix-prefetch
set -eou pipefail

ROOT="$(dirname "$(readlink -f "$0")")"

CURRENT_VERSION=$(nix-instantiate --eval --strict --json -A tailwindcss.version . | jq -r .)
LATEST_VERSION=$(curl --fail --silent https://api.github.com/repos/tailwindlabs/tailwindcss/releases/latest | jq --raw-output .tag_name | sed 's/v//')
sed -i "s/version = \".*\"/version = \"${LATEST_VERSION}\"/" "$ROOT/default.nix"

if [ "$CURRENT_VERSION" = "$LATEST_VERSION" ]; then
    echo "tailwindcss already at latest version $CURRENT_VERSION, exiting"
    exit 0
fi

function updatePlatform() {
    NIXPLAT=$1
    TAILWINDPLAT=$2
    echo "Updating tailwindcss for $NIXPLAT"

    URL="https://github.com/tailwindlabs/tailwindcss/releases/download/v${LATEST_VERSION}/tailwindcss-${TAILWINDPLAT}"
    HASH=$(nix hash to-sri --type sha256 "$(nix-prefetch-url --type sha256 "$URL")")

    sed -i "s,$NIXPLAT = \"sha256.*\",$NIXPLAT = \"${HASH}\"," "$ROOT/default.nix"
}

updatePlatform aarch64-darwin macos-arm64
updatePlatform aarch64-linux linux-arm64
updatePlatform x86_64-darwin macos-x64
updatePlatform x86_64-linux linux-x64
+2 −0
Original line number Diff line number Diff line
@@ -1085,6 +1085,8 @@ with pkgs;
  tailwindcss = callPackage ../development/tools/tailwindcss { };
  tailwindcss_4 = callPackage ../development/tools/tailwindcss_4 { };
  ufolint = with python3Packages; toPythonApplication ufolint;
  valeronoi = qt6Packages.callPackage ../tools/misc/valeronoi { };