1{
2 stdenv,
3 lib,
4 bundlerEnv,
5 bundlerUpdateScript,
6 makeWrapper,
7 file,
8 testers,
9 reckon,
10}:
11
12stdenv.mkDerivation rec {
13 pname = "reckon";
14 version = (import ./gemset.nix).reckon.version;
15
16 dontUnpack = true;
17
18 nativeBuildInputs = [ makeWrapper ];
19
20 installPhase =
21 let
22 env = bundlerEnv {
23 name = "${pname}-${version}-gems";
24
25 gemdir = ./.;
26 };
27 in
28 ''
29 runHook preInstall
30 mkdir -p $out/bin
31 makeWrapper ${env}/bin/reckon $out/bin/reckon \
32 --prefix PATH : ${lib.makeBinPath [ file ]}
33 runHook postInstall
34 '';
35
36 passthru = {
37 tests.version = testers.testVersion {
38 package = reckon;
39 version = "${version}";
40 };
41 updateScript = bundlerUpdateScript "reckon";
42 };
43
44 meta = with lib; {
45 description = "Flexibly import bank account CSV files into Ledger for command line accounting";
46 mainProgram = "reckon";
47 license = licenses.mit;
48 maintainers = with maintainers; [ nicknovitski ];
49 platforms = platforms.unix;
50 changelog = "https://github.com/cantino/reckon/blob/v${version}/CHANGELOG.md";
51 };
52}