Files
nixpkgs/pkgs/by-name/ze/zenn-cli/package.nix
2026-09-11 19:34:42 +00:00

92 lines
1.9 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
makeWrapper,
nodejs,
pnpm_10,
fetchPnpmDeps,
pnpmConfigHook,
testers,
nix-update-script,
}:
let
pnpm = pnpm_10;
in
stdenv.mkDerivation (finalAttrs: {
pname = "zenn-cli";
version = "0.5.4";
src = fetchFromGitHub {
owner = "zenn-dev";
repo = "zenn-editor";
tag = finalAttrs.version;
hash = "sha256-U5rKmDi1FSWA/QBeKkVOIJYYeySjDwT9yvEWgPD6YsA=";
};
nativeBuildInputs = [
nodejs
pnpmConfigHook
pnpm_10
makeWrapper
];
pnpmWorkspaces = [ "zenn-cli..." ];
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs)
pname
version
src
pnpmWorkspaces
;
pnpm = pnpm_10;
fetcherVersion = 3;
hash = "sha256-EObQPLRq911rc9zNUpU7za+Vl6Y/3VE3KPcJ4UII0Y4=";
};
preBuild = ''
echo VITE_EMBED_SERVER_ORIGIN="https://embed.zenn.studio" > packages/zenn-cli/.env
'';
buildPhase = ''
runHook preBuild
pnpm build --no-daemon
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib/packages}
rm -r node_modules packages/zenn-cli/node_modules
pnpm install --filter=zenn-cli --prod --ignore-scripts
cp -r node_modules $out/lib
cp -r packages/zenn-cli $out/lib/packages/zenn-cli
makeWrapper "${lib.getExe nodejs}" "$out/bin/zenn" \
--add-flags "$out/lib/packages/zenn-cli/dist/server/zenn.js"
runHook postInstall
'';
passthru = {
tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
};
updateScript = nix-update-script { };
};
meta = {
description = "Preview Zenn content locally";
homepage = "https://github.com/zenn-dev/zenn-editor";
changelog = "https://github.com/zenn-dev/zenn-editor/releases/tag/${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ natsukium ];
mainProgram = "zenn";
platforms = nodejs.meta.platforms;
};
})