paisa: init at 0.7.3
This commit is contained in:
parent
0a87494ff3
commit
b11bdcdd4b
98
pkgs/by-name/pa/paisa/package.nix
Normal file
98
pkgs/by-name/pa/paisa/package.nix
Normal file
@ -0,0 +1,98 @@
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
# nodejs_22,
|
||||
nodejs_20,
|
||||
versionCheckHook,
|
||||
node-gyp,
|
||||
python311,
|
||||
pkg-config,
|
||||
cairo,
|
||||
giflib,
|
||||
libjpeg,
|
||||
libpng,
|
||||
librsvg,
|
||||
pango,
|
||||
pixman,
|
||||
}:
|
||||
|
||||
let
|
||||
# paisa docker builds with nodejs 22, but we need node 20 so we can build
|
||||
# node-canvas from source (which currently fails with nodejs 22 due to some
|
||||
# deprecations in the v8 javascript engine and nan c++
|
||||
buildNpmPackage' = buildNpmPackage.override { nodejs = nodejs_20; };
|
||||
in
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "paisa";
|
||||
version = "0.7.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ananthakumaran";
|
||||
repo = "paisa";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-nJpyqEOlXNvnMvheWtfUMARBgQRk8TpXHyVsXDxJ3oo=";
|
||||
};
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
vendorHash = "sha256-KnHJ6+aMahTeNdbRcRAgBERGVYen/tM/tDcFI/NyLdE=";
|
||||
frontend = buildNpmPackage' {
|
||||
pname = "paisa-frontend";
|
||||
inherit (finalAttrs) version src;
|
||||
|
||||
npmDepsHash = "sha256-8LPW9pcipVMWuZ4wOlpAOaRdT5o1gom39gqcfmhY1eE=";
|
||||
|
||||
buildInputs = [
|
||||
# needed for building node-canvas from source which is a dependency of
|
||||
# pdfjs
|
||||
# https://github.com/Automattic/node-canvas/blob/master/Readme.md#compiling
|
||||
cairo
|
||||
giflib
|
||||
libjpeg
|
||||
libpng
|
||||
librsvg
|
||||
pango
|
||||
pixman
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
# building node-canvas with node-gyp will fail if using a newer python
|
||||
# version:
|
||||
# File "/build/source/node_modules/node-gyp/gyp/gyp_main.py", line 42, in
|
||||
# <module> npm error ModuleNotFoundError: No module named 'distutils'
|
||||
python311
|
||||
pkg-config
|
||||
node-gyp
|
||||
];
|
||||
|
||||
postBuild = ''
|
||||
mkdir -p $out/web/
|
||||
cp -r web/static $out/web/
|
||||
'';
|
||||
};
|
||||
|
||||
env.CGO_ENABLED = 1;
|
||||
|
||||
doCheck = true;
|
||||
|
||||
doInstallCheck = true;
|
||||
nativeInstallCheckInputs = [
|
||||
versionCheckHook
|
||||
];
|
||||
versionCheckProgramArg = "version";
|
||||
|
||||
preBuild = ''
|
||||
cp -r ${finalAttrs.frontend}/web/static ./web
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://paisa.fyi/";
|
||||
changelog = "https://github.com/ananthakumaran/paisa/releases/tag/v${finalAttrs.version}";
|
||||
description = "Paisa is a Personal finance manager. It builds on top of the ledger double entry accounting tool.";
|
||||
license = lib.licenses.agpl3Only;
|
||||
mainProgram = "paisa";
|
||||
maintainers = with lib.maintainers; [ skowalak ];
|
||||
};
|
||||
})
|
||||
Loading…
x
Reference in New Issue
Block a user