mirror of
https://github.com/CHN-beta/nixos.git
synced 2024-10-23 05:18:44 +08:00
successfully packaged misskey
This commit is contained in:
parent
a6e9f27c29
commit
e16c8f70aa
@ -686,11 +686,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1692778062,
|
||||
"narHash": "sha256-h7WFkl87bLMrfecF9h8FAAoW5fhBcybtYcRxtpeQqn4=",
|
||||
"lastModified": 1692918416,
|
||||
"narHash": "sha256-SPbFwuIJ5HIhoZxI6snQ3QGyrusqB8eqX/3aOtx+afA=",
|
||||
"owner": "CHN-beta",
|
||||
"repo": "pnpm2nix-nzbr",
|
||||
"rev": "6e74fe72a245f1bae87fb3d20ea632c6465ec2ce",
|
||||
"rev": "7472a7749fc9f1ef7b75b618d6645f84ead2764d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -7,4 +7,5 @@
|
||||
oneapi = callPackage ./oneapi {};
|
||||
send = callPackage ./send {};
|
||||
rsshub = callPackage ./rsshub {};
|
||||
misskey = callPackage ./misskey {};
|
||||
}
|
||||
|
80
local/pkgs/misskey/default.nix
Normal file
80
local/pkgs/misskey/default.nix
Normal file
@ -0,0 +1,80 @@
|
||||
{
|
||||
lib, stdenv, mkPnpmPackage, fetchFromGitHub, nodejs_20, writeShellScript, buildFHSEnv,
|
||||
bash, cypress, vips, pkg-config
|
||||
}:
|
||||
let
|
||||
pname = "misskey";
|
||||
version = "13.14.2";
|
||||
src = fetchFromGitHub
|
||||
{
|
||||
owner = "CHN-beta";
|
||||
repo = "misskey";
|
||||
rev = "e02ecb3819f6f05352d43b64ae59fa1bd683e2e0";
|
||||
hash = "sha256-zsYM67LYUn+bI6kbdW9blftxw5TUxCdzlfaOOEgZz+Q=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
originalPnpmPackage = mkPnpmPackage
|
||||
{
|
||||
inherit pname version src;
|
||||
nodejs = nodejs_20;
|
||||
copyPnpmStore = true;
|
||||
};
|
||||
misskey-unwrapped = stdenv.mkDerivation
|
||||
{
|
||||
inherit version src;
|
||||
pname = "${pname}-unwrapped";
|
||||
nativeBuildInputs =
|
||||
[ bash nodejs_20 nodejs_20.pkgs.typescript nodejs_20.pkgs.pnpm nodejs_20.pkgs.gulp cypress vips pkg-config ];
|
||||
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_20}
|
||||
|
||||
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
|
||||
runHook postInstall
|
||||
'';
|
||||
};
|
||||
startScript = writeShellScript "misskey"
|
||||
''
|
||||
cd ${misskey-unwrapped}
|
||||
export PATH=${lib.makeBinPath [ bash nodejs_20 nodejs_20.pkgs.pnpm nodejs_20.pkgs.gulp cypress ]}:$PATH
|
||||
export CYPRESS_RUN_BINARY="${cypress}/bin/Cypress"
|
||||
export NODE_ENV=production
|
||||
pnpm run migrateandstart
|
||||
'';
|
||||
in stdenv.mkDerivation rec
|
||||
{
|
||||
inherit pname version;
|
||||
phases = [ "installPhase" ];
|
||||
installPhase =
|
||||
''
|
||||
runHook preInstall
|
||||
mkdir -p $out/bin
|
||||
cp ${startScript} $out/bin/misskey
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
Loading…
Reference in New Issue
Block a user