mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-07-06 17:13:24 -05:00
ghostfolio: 2.254.0 -> 3.2.0, refactor
This commit is contained in:
parent
014cee4ea6
commit
a2bce4fdec
1 changed files with 35 additions and 20 deletions
|
|
@ -5,19 +5,19 @@
|
|||
nodejs,
|
||||
faketty,
|
||||
openssl,
|
||||
prisma_6,
|
||||
prisma-engines_6,
|
||||
prisma_7,
|
||||
prisma-engines_7,
|
||||
}:
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "ghostfolio";
|
||||
version = "2.254.0";
|
||||
version = "3.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ghostfolio";
|
||||
repo = "ghostfolio";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-bcUr0tzq/X2pOmg7ZYj46+TQO9NBKmevm+C6PbyV/yc=";
|
||||
hash = "sha256-KmjGHiuPbXxJ9IkTA8PtjeNfhSyZnqdEp5yn8ypdM2g=";
|
||||
# populate values that require us to use git. By doing this in postFetch we
|
||||
# can delete .git afterwards and maintain better reproducibility of the src.
|
||||
leaveDotGit = true;
|
||||
|
|
@ -27,10 +27,19 @@ buildNpmPackage (finalAttrs: {
|
|||
'';
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-Wa15OSsd2IXTO1OjZoiFsSF0UhrzvS6fsymvxyPm0s8=";
|
||||
npmDepsHash = "sha256-YLS1tT15bj9WF9xzOn9UhXIA7Qe0FcQgfOQFSntPYm4=";
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace replace.build.mjs \
|
||||
--replace-fail 'new Date()' "new Date(''$(<SOURCE_DATE_EPOCH))"
|
||||
# SyntaxError: Named export 'PrismaClient' not found
|
||||
substituteInPlace prisma/seed.mts \
|
||||
--replace-fail "import { PrismaClient } from '@prisma/client';" \
|
||||
"import prismaClientPkg from '@prisma/client'; const { PrismaClient } = prismaClientPkg;"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
prisma_6
|
||||
prisma_7
|
||||
faketty
|
||||
];
|
||||
|
||||
|
|
@ -42,9 +51,6 @@ buildNpmPackage (finalAttrs: {
|
|||
|
||||
prisma generate
|
||||
|
||||
substituteInPlace replace.build.mjs \
|
||||
--replace-fail 'new Date()' "new Date(''$(<SOURCE_DATE_EPOCH))"
|
||||
|
||||
# Workaround for https://github.com/nrwl/nx/issues/22445
|
||||
faketty npm run build:production
|
||||
|
||||
|
|
@ -58,32 +64,41 @@ buildNpmPackage (finalAttrs: {
|
|||
|
||||
cp -r {node_modules,prisma} dist/apps/api/
|
||||
|
||||
mkdir -p "$out/lib/node_modules/ghostfolio"
|
||||
cp -r dist/apps/{api,client} "$out/lib/node_modules/ghostfolio/"
|
||||
mkdir -p $out/lib/ghostfolio
|
||||
cp -r dist/apps/{api,client} "$out/lib/ghostfolio/"
|
||||
|
||||
substituteInPlace .config/prisma.ts \
|
||||
--replace-fail "__dirname, '..', 'prisma'" "'$out/lib/ghostfolio/api/prisma'" \
|
||||
--replace-fail "node " "${lib.getExe nodejs} "
|
||||
install -Dm444 .config/prisma.ts "$out/lib/ghostfolio/api/prisma.config.ts"
|
||||
|
||||
makeWrapper ${lib.getExe nodejs} "$out/bin/ghostfolio" \
|
||||
--add-flags "$out/lib/node_modules/ghostfolio/api/main" "''${user_args[@]}" \
|
||||
--add-flags "$out/lib/ghostfolio/api/main" "''${user_args[@]}" \
|
||||
--prefix PATH : ${lib.makeBinPath [ openssl ]} \
|
||||
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ openssl ]} \
|
||||
${lib.concatStringsSep " " (
|
||||
lib.mapAttrsToList (name: value: "--set ${name} ${lib.escapeShellArg value}") {
|
||||
PRISMA_SCHEMA_ENGINE_BINARY = lib.getExe' prisma-engines_6 "schema-engine";
|
||||
PRISMA_QUERY_ENGINE_BINARY = lib.getExe' prisma-engines_6 "query-engine";
|
||||
PRISMA_QUERY_ENGINE_LIBRARY = "${prisma-engines_6}/lib/libquery_engine.node";
|
||||
PRISMA_INTROSPECTION_ENGINE_BINARY = lib.getExe' prisma-engines_6 "introspection-engine";
|
||||
PRISMA_FMT_BINARY = lib.getExe' prisma-engines_6 "prisma-fmt";
|
||||
PRISMA_SCHEMA_ENGINE_BINARY = lib.getExe' prisma-engines_7 "schema-engine";
|
||||
PRISMA_QUERY_ENGINE_BINARY = lib.getExe' prisma-engines_7 "query-engine";
|
||||
PRISMA_QUERY_ENGINE_LIBRARY = "${prisma-engines_7}/lib/libquery_engine.node";
|
||||
PRISMA_INTROSPECTION_ENGINE_BINARY = lib.getExe' prisma-engines_7 "introspection-engine";
|
||||
PRISMA_FMT_BINARY = lib.getExe' prisma-engines_7 "prisma-fmt";
|
||||
}
|
||||
)}
|
||||
|
||||
# For compatibility
|
||||
mkdir -p $out/lib/node_modules
|
||||
ln -sr $out/lib/ghostfolio $out/lib/node_modules/ghostfolio
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# Remove dev deps not needed at runtime
|
||||
preFixup = ''
|
||||
find $out/lib/node_modules -name "*.py" -delete
|
||||
apiModules="$out/lib/node_modules/ghostfolio/api/node_modules"
|
||||
find $out/lib -name "*.py" -delete
|
||||
apiModules="$out/lib/ghostfolio/api/node_modules"
|
||||
rm -rf \
|
||||
"$out/lib/node_modules/ghostfolio/client/development" \
|
||||
"$out/lib/ghostfolio/client/development" \
|
||||
"$apiModules"/sass-embedded* \
|
||||
"$apiModules"/{@,}esbuild \
|
||||
"$apiModules"/{@,}rollup \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue