evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / ev / evcc / package.nix
blob2849c3509494fc4634601f7aed607af37faa7b6c
1 { lib
2 , stdenv
3 , buildGoModule
4 , fetchFromGitHub
5 , fetchNpmDeps
6 , cacert
7 , git
8 , go
9 , enumer
10 , mockgen
11 , nodejs
12 , npmHooks
13 , nix-update-script
14 , nixosTests
17 buildGoModule rec {
18   pname = "evcc";
19   version = "0.131.5";
21   src = fetchFromGitHub {
22     owner = "evcc-io";
23     repo = "evcc";
24     rev = version;
25     hash = "sha256-CRqxxbPkcjswntMgGkIrPFEbnjI90sfTmG6D1eCo45w=";
26   };
28   vendorHash = "sha256-x0EWFsR/O2Ztg39DL+yZx2ZDzJHADo2aPAeg/i+5KqM=";
30   npmDeps = fetchNpmDeps {
31     inherit src;
32     hash = "sha256-4PBlN2pbr7dzZNQzh/P0kBlsg6ut2XPwsfFB132hWO0=";
33   };
35   nativeBuildInputs = [
36     nodejs
37     npmHooks.npmConfigHook
38   ];
40   overrideModAttrs = _: {
41     nativeBuildInputs = [
42       enumer
43       go
44       git
45       cacert
46       mockgen
47     ];
49     preBuild = ''
50       make assets
51     '';
52   };
54   tags = [
55     "release"
56     "test"
57   ];
59   ldflags = [
60     "-X github.com/evcc-io/evcc/server.Version=${version}"
61     "-X github.com/evcc-io/evcc/server.Commit=${src.rev}"
62     "-s"
63     "-w"
64   ];
66   preBuild = ''
67     make ui
68   '';
70   doCheck = !stdenv.hostPlatform.isDarwin; # darwin sandbox limitations around network access, access to /etc/protocols and likely more
72   checkFlags = let
73     skippedTests = [
74       # network access
75       "TestOctopusConfigParse"
76       "TestTemplates"
77       "TestOcpp"
78     ];
79   in
80   [ "-skip=^${lib.concatStringsSep "$|^" skippedTests}$" ];
82   passthru = {
83     tests = {
84       inherit (nixosTests) evcc;
85     };
86     updateScript = nix-update-script { };
87   };
89   meta = with lib; {
90     description = "EV Charge Controller";
91     homepage = "https://evcc.io";
92     changelog = "https://github.com/evcc-io/evcc/releases/tag/${version}";
93     license = licenses.mit;
94     maintainers = with maintainers; [ hexa ];
95   };