summary refs log tree commit diff
path: root/pkgs/applications/office/fava/default.nix
blob: 7bc549dd0fc5fd003f0dc9bd9bd1cb11d56bf68f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{ stdenv, pkgs, fetchurl, python3Packages, fetchFromGitHub, fetchzip, python3, beancount }:

python3Packages.buildPythonApplication rec {
  version = "1.3";
  name = "fava-${version}";

  src = fetchFromGitHub {
    owner = "beancount";
    repo = "fava";
    rev = "v${version}";
    sha256 = "0g0aj0qcmpny6dipi00nks7h3mf5a4jfd6bxjm1rb5807wswcpg8";
  };

  assets = fetchzip {
    url = "https://github.com/beancount/fava/releases/download/v${version}/fava-${version}.tar.gz";
    sha256 = "0yn2psbn436g1w5ixn94z8ca6dfd54izg98979arn0k7slpiccvz";
  };

  checkInputs = with python3Packages; [ pytest ];

  checkPhase = ''
    # pyexcel is optional
    # the other 2 tests fail due non-unicode locales
    PATH=$out/bin:$PATH pytest tests \
      --ignore tests/test_util_excel.py \
      --ignore tests/test_cli.py \
      --ignore tests/test_translations.py \
  '';

  postInstall = ''
    cp -r $assets/fava/static/gen $out/${python3.sitePackages}/fava/static
  '';

  propagatedBuildInputs = with python3Packages;
    [ flask dateutil pygments wheel markdown2 flaskbabel tornado
      click beancount ];

  meta = {
    homepage = https://github.com/aumayr/fava;
    description = "Web interface for beancount";
    license = stdenv.lib.licenses.mit;
    maintainers = with stdenv.lib.maintainers; [ matthiasbeyer ];
  };
}