From 6eae42e744331df1a8a1268589b35522a91e70ab Mon Sep 17 00:00:00 2001 From: GetPsyched Date: Fri, 13 Sep 2024 06:18:39 +0530 Subject: [PATCH] shadcn: init at 2.0.3 --- pkgs/by-name/sh/shadcn/package.nix | 82 ++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 pkgs/by-name/sh/shadcn/package.nix diff --git a/pkgs/by-name/sh/shadcn/package.nix b/pkgs/by-name/sh/shadcn/package.nix new file mode 100644 index 000000000000..fed25e1fddcf --- /dev/null +++ b/pkgs/by-name/sh/shadcn/package.nix @@ -0,0 +1,82 @@ +{ + lib, + stdenvNoCC, + fetchFromGitHub, + makeBinaryWrapper, + nodejs, + pnpm_9, + testers, + shadcn, +}: + +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "shadcn"; + version = "2.0.3"; + + src = fetchFromGitHub { + owner = "shadcn-ui"; + repo = "ui"; + rev = "shadcn@${finalAttrs.version}"; + hash = "sha256-OBLKCj+v5KgYslJGuwLgJHjgcrxLPiiyO5/ucrJ14Ws="; + }; + + pnpmWorkspace = "shadcn"; + pnpmDeps = pnpm_9.fetchDeps { + inherit (finalAttrs) + pname + version + src + pnpmWorkspace + ; + hash = "sha256-OcoZfbB04CFHpAM/fW3IhIMXtas6x8H3+lvk7nTN8Tg="; + }; + + nativeBuildInputs = [ + makeBinaryWrapper + nodejs + pnpm_9.configHook + ]; + + buildPhase = '' + runHook preBuild + + pnpm run shadcn:build + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/{bin,lib} + cp -r {packages,node_modules} $out/lib + + # cleanup + rm -r $out/lib/packages/{cli,shadcn/src} + find $out/lib/packages/shadcn -name '*.ts' -delete + + makeWrapper ${lib.getExe nodejs} $out/bin/shadcn \ + --inherit-argv0 \ + --add-flags $out/lib/packages/shadcn/dist/index.js + + runHook postInstall + ''; + + passthru.tests.version = testers.testVersion { + package = shadcn; + command = "shadcn --version"; + version = finalAttrs.version; + }; + + meta = { + changelog = "https://github.com/shadcn-ui/ui/blob/${finalAttrs.src.rev}/packages/shadcn/CHANGELOG.md#${ + builtins.replaceStrings [ "." ] [ "" ] finalAttrs.version + }"; + description = "Beautifully designed components that you can copy and paste into your apps"; + homepage = "https://ui.shadcn.com/docs/cli"; + license = lib.licenses.mit; + mainProgram = "shadcn"; + maintainers = with lib.maintainers; [ getpsyched ]; + platforms = lib.platforms.all; + }; +})