88 lines
1.8 KiB
Nix
88 lines
1.8 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
fetchPnpmDeps,
|
|
pnpm_10,
|
|
nodejs,
|
|
pnpmConfigHook,
|
|
nix-update-script,
|
|
}:
|
|
let
|
|
pnpm = pnpm_10;
|
|
in
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "slidev-cli";
|
|
version = "52.15.2";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "slidevjs";
|
|
repo = "slidev";
|
|
tag = "v${finalAttrs.version}";
|
|
hash = "sha256-h9gVfGMLTm8NDSAR/OKl5XJRBduAPHQ9mp+jtNYtxFI=";
|
|
};
|
|
|
|
pnpmWorkspaces = [ "@slidev/cli..." ];
|
|
|
|
pnpmDeps = fetchPnpmDeps {
|
|
inherit (finalAttrs)
|
|
pname
|
|
version
|
|
src
|
|
pnpmWorkspaces
|
|
;
|
|
inherit pnpm;
|
|
fetcherVersion = 3;
|
|
hash = "sha256-DGDzNvau1XjPjkGZqcFZGkjYd3cneXO/gCdnwjjkQDY=";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
nodejs
|
|
pnpmConfigHook
|
|
pnpm
|
|
];
|
|
|
|
buildInputs = [
|
|
nodejs
|
|
];
|
|
|
|
buildPhase = ''
|
|
runHook preBuild
|
|
|
|
pnpm -r --filter=@slidev/cli... --parallel run build
|
|
|
|
runHook postBuild
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
rm -rf node_modules packages/slidev/node_modules
|
|
pnpm install --force --offline --production --ignore-scripts --filter=@slidev/cli...
|
|
|
|
mkdir -p $out/lib/node_modules/slidev-cli/
|
|
mkdir $out/bin
|
|
mv ./packages ./node_modules ./package.json $out/lib/node_modules/slidev-cli
|
|
|
|
ln -s $out/lib/node_modules/slidev-cli/packages/slidev/bin/slidev.mjs $out/bin/slidev
|
|
chmod +x $out/bin/slidev
|
|
patchShebangs $out/bin/slidev
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
passthru.updateScript = nix-update-script { };
|
|
|
|
meta = {
|
|
changelog = "https://github.com/slidevjs/slidev/releases/tag/v${finalAttrs.version}";
|
|
description = "Presentation slides for developers";
|
|
homepage = "https://sli.dev";
|
|
license = lib.licenses.mit;
|
|
maintainers = with lib.maintainers; [
|
|
pyrox0
|
|
pluiedev
|
|
];
|
|
mainProgram = "slidev";
|
|
};
|
|
})
|