mirror of
https://github.com/CHN-beta/nixos.git
synced 2024-10-24 12:18:46 +08:00
77 lines
1.9 KiB
Nix
77 lines
1.9 KiB
Nix
{
|
|
lib, stdenv, mkPnpmPackage, fetchFromGitHub, fetchurl, nodejs, writeShellScript, buildFHSEnv,
|
|
bash, cypress, vips, pkg-config
|
|
}:
|
|
let
|
|
pname = "misskey";
|
|
version = "2023.12.0";
|
|
src = fetchFromGitHub
|
|
{
|
|
owner = "CHN-beta";
|
|
repo = "misskey";
|
|
rev = "bec1dc37598b71c377643ee77330d4d6f7eb31f2";
|
|
sha256 = "sha256-svLpG4xQ2mtsJ6gm+Ap8fZKTOl5V68XybGDvymsV4F4=";
|
|
fetchSubmodules = true;
|
|
};
|
|
originalPnpmPackage = mkPnpmPackage
|
|
{
|
|
inherit pname version src nodejs;
|
|
copyPnpmStore = true;
|
|
};
|
|
startScript = writeShellScript "misskey"
|
|
''
|
|
export PATH=${lib.makeBinPath [ bash nodejs nodejs.pkgs.pnpm nodejs.pkgs.gulp cypress ]}:$PATH
|
|
export CYPRESS_RUN_BINARY="${cypress}/bin/Cypress"
|
|
export NODE_ENV=production
|
|
pnpm run migrateandstart
|
|
'';
|
|
in
|
|
stdenv.mkDerivation rec
|
|
{
|
|
inherit version src pname;
|
|
buildInputs =
|
|
[
|
|
bash nodejs nodejs.pkgs.typescript nodejs.pkgs.pnpm nodejs.pkgs.gulp cypress vips pkg-config
|
|
];
|
|
nativeBuildInputs = buildInputs;
|
|
CYPRESS_RUN_BINARY = "${cypress}/bin/Cypress";
|
|
NODE_ENV = "production";
|
|
configurePhase =
|
|
''
|
|
export HOME=$NIX_BUILD_TOP # Some packages need a writable HOME
|
|
export npm_config_nodedir=${nodejs}
|
|
|
|
runHook preConfigure
|
|
|
|
store=$(pnpm store path)
|
|
mkdir -p $(dirname $store)
|
|
|
|
cp -f ${originalPnpmPackage.passthru.patchedLockfileYaml} pnpm-lock.yaml
|
|
cp -RL ${originalPnpmPackage.passthru.pnpmStore} $store
|
|
chmod -R +w $store
|
|
pnpm install --frozen-lockfile --offline
|
|
|
|
runHook postConfigure
|
|
'';
|
|
buildPhase =
|
|
''
|
|
runHook preBuild
|
|
pnpm run build
|
|
runHook postBuild
|
|
'';
|
|
installPhase =
|
|
''
|
|
runHook preInstall
|
|
mkdir -p $out
|
|
mv * .* $out
|
|
mkdir -p $out/bin
|
|
cp ${startScript} $out/bin/misskey
|
|
mkdir -p $out/files
|
|
runHook postInstall
|
|
'';
|
|
passthru =
|
|
{
|
|
inherit originalPnpmPackage startScript;
|
|
};
|
|
}
|