Merge pull request #330634 from r-ryantm/auto-update/circumflex
[NixPkgs.git] / pkgs / servers / alice-lg / default.nix
blobf478c1e4c83a41e02d2d694387dac466181f4ab3
1 { lib
2 , fetchFromGitHub
3 , buildGoModule
4 , fetchYarnDeps
5 , stdenv
6 , yarn
7 , nodejs
8 , nixosTests
9 , fixup-yarn-lock
12 buildGoModule rec {
13   pname = "alice-lg";
14   version = "6.1.0";
16   src = fetchFromGitHub {
17     owner = "alice-lg";
18     repo = "alice-lg";
19     rev = version;
20     hash = "sha256-BbwTLHDtpa8HCECIiy+UxyQiLf9iAD2GzE0azXk7QGU=";
21   };
23   vendorHash = "sha256-8N5E1CW5Z7HujwXRsZLv7y4uNOJkjj155kmX9PCjajQ=";
25   passthru.ui = stdenv.mkDerivation {
26     pname = "alice-lg-ui";
27     src = "${src}/ui";
28     inherit version;
30     yarnOfflineCache = fetchYarnDeps {
31       yarnLock = src + "/ui/yarn.lock";
32       hash = "sha256-PwByNIegKYTOT8Yg3nDMDFZiLRVkbX07z99YaDiBsIY=";
33     };
35     nativeBuildInputs = [ nodejs yarn fixup-yarn-lock ];
36     configurePhase = ''
37       runHook preConfigure
39       # Yarn and bundler wants a real home directory to write cache, config, etc to
40       export HOME=$NIX_BUILD_TOP/fake_home
42       # Make yarn install packages from our offline cache, not the registry
43       yarn config --offline set yarn-offline-mirror $yarnOfflineCache
45       # Fixup "resolved"-entries in yarn.lock to match our offline cache
46       fixup-yarn-lock yarn.lock
48       yarn install --offline --frozen-lockfile --ignore-scripts --no-progress --non-interactive
49       patchShebangs node_modules/
50       runHook postConfigure
51     '';
53     buildPhase = ''
54       runHook preBuild
56       ./node_modules/.bin/react-scripts build
58       runHook postBuild
59     '';
61     installPhase = ''
62       runHook preInstall
64       mv build $out
66       runHook postInstall
67     '';
68   };
70   preBuild = ''
71     cp -R ${passthru.ui}/ ui/build/
72   '';
74   subPackages = [ "cmd/alice-lg" ];
75   doCheck = false;
77   passthru.tests = nixosTests.alice-lg;
79   meta = with lib; {
80     homepage = "https://github.com/alice-lg/alice-lg";
81     description = "Looking-glass for BGP sessions";
82     changelog = "https://github.com/alice-lg/alice-lg/blob/main/CHANGELOG.md";
83     license = licenses.bsd3;
84     maintainers = with maintainers; [ ];
85     mainProgram = "alice-lg";
86   };