From 3af1bb5f9f1780397c204edcbc206437240a090d Mon Sep 17 00:00:00 2001 From: adamjhf Date: Sat, 8 Feb 2025 09:19:22 +1100 Subject: [PATCH 1/4] tailwindcss_4: init at 4.0.4 --- .../tools/tailwindcss_4/default.nix | 64 +++++++++++++++++++ .../development/tools/tailwindcss_4/update.sh | 30 +++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 96 insertions(+) create mode 100644 pkgs/development/tools/tailwindcss_4/default.nix create mode 100755 pkgs/development/tools/tailwindcss_4/update.sh diff --git a/pkgs/development/tools/tailwindcss_4/default.nix b/pkgs/development/tools/tailwindcss_4/default.nix new file mode 100644 index 000000000000..14373e79c206 --- /dev/null +++ b/pkgs/development/tools/tailwindcss_4/default.nix @@ -0,0 +1,64 @@ +{ + 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; + }; +} diff --git a/pkgs/development/tools/tailwindcss_4/update.sh b/pkgs/development/tools/tailwindcss_4/update.sh new file mode 100755 index 000000000000..bcf057e6e9b9 --- /dev/null +++ b/pkgs/development/tools/tailwindcss_4/update.sh @@ -0,0 +1,30 @@ +#!/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 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7e7a7b20e32e..52b8bf7f5f19 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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 { }; From ca3ef3c8af500df055460d3439911d11e65eba7d Mon Sep 17 00:00:00 2001 From: adamjhf Date: Sat, 8 Feb 2025 09:36:43 +1100 Subject: [PATCH 2/4] add maintainer --- maintainers/maintainer-list.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index d37138e2b3ee..deec8be97625 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -562,6 +562,11 @@ githubId = 2071575; name = "Adam C. Stephens"; }; + adamjhf = { + github = "adamjhf"; + githubId = 50264672; + name = "Adam Freeth"; + }; adamt = { email = "mail@adamtulinius.dk"; github = "adamtulinius"; From 9aff56b184630eefea912f895b5bb1209e31d1df Mon Sep 17 00:00:00 2001 From: adamjhf Date: Wed, 12 Feb 2025 21:51:03 +1100 Subject: [PATCH 3/4] move to by-name --- .../default.nix => by-name/ta/tailwindcss_4/package.nix} | 0 pkgs/{development/tools => by-name/ta}/tailwindcss_4/update.sh | 0 pkgs/top-level/all-packages.nix | 2 -- 3 files changed, 2 deletions(-) rename pkgs/{development/tools/tailwindcss_4/default.nix => by-name/ta/tailwindcss_4/package.nix} (100%) rename pkgs/{development/tools => by-name/ta}/tailwindcss_4/update.sh (100%) diff --git a/pkgs/development/tools/tailwindcss_4/default.nix b/pkgs/by-name/ta/tailwindcss_4/package.nix similarity index 100% rename from pkgs/development/tools/tailwindcss_4/default.nix rename to pkgs/by-name/ta/tailwindcss_4/package.nix diff --git a/pkgs/development/tools/tailwindcss_4/update.sh b/pkgs/by-name/ta/tailwindcss_4/update.sh similarity index 100% rename from pkgs/development/tools/tailwindcss_4/update.sh rename to pkgs/by-name/ta/tailwindcss_4/update.sh diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 52b8bf7f5f19..7e7a7b20e32e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1085,8 +1085,6 @@ 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 { }; From cebd2641540064cb8cd42a4ff3a3c086790b5d1d Mon Sep 17 00:00:00 2001 From: adamjhf Date: Wed, 12 Feb 2025 21:56:15 +1100 Subject: [PATCH 4/4] update to v4.0.6 --- pkgs/by-name/ta/tailwindcss_4/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/ta/tailwindcss_4/package.nix b/pkgs/by-name/ta/tailwindcss_4/package.nix index 14373e79c206..9dfc8a3967b7 100644 --- a/pkgs/by-name/ta/tailwindcss_4/package.nix +++ b/pkgs/by-name/ta/tailwindcss_4/package.nix @@ -6,7 +6,7 @@ tailwindcss_4, }: let - version = "4.0.4"; + version = "4.0.6"; inherit (stdenv.hostPlatform) system; throwSystem = throw "tailwindcss has not been packaged for ${system} yet."; @@ -21,10 +21,10 @@ let hash = { - aarch64-darwin = "sha256-hH9+h6jtXS9uT5mujDRTtjRM2onG8ZQsexOlMaIoXv4="; - aarch64-linux = "sha256-wFUHnzVrwg/NsWEKHXMvgHSX8AuXUgwcktBt8fahu3A="; - x86_64-darwin = "sha256-iMPHW3snWY9nWgRv6+0IS3Zh29LC0kYmzfwOcJM8xN0="; - x86_64-linux = "sha256-ni5tivbbuV3U31ydmd9jBLBd8dH3cAAPFwSHmRAXubQ="; + aarch64-darwin = "sha256-FopnfuGYBjjQkfPHdIWacpom9WsAVRwHPQ/14waWR7s="; + aarch64-linux = "sha256-y+9d53skmoSZPhbtk9vUkhKNzIE1A868Lnkw7Cot/PU="; + x86_64-darwin = "sha256-rFjaDtPjJO9W6G//7Uu5CJE+pB0sqLrMByC5pv4FA4E="; + x86_64-linux = "sha256-14EMXenpvPsKlnu5kebNu3MmfWwa7UYfAgEkh5EwVRM="; } .${system} or throwSystem; in