From a9a37884b41e989c8f125c4588f306e677cb8e33 Mon Sep 17 00:00:00 2001 From: Yureka Date: Wed, 20 Mar 2024 10:18:13 +0100 Subject: [PATCH] fernglas: init at 0.2.1 --- pkgs/by-name/fe/fernglas/package.nix | 72 ++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 pkgs/by-name/fe/fernglas/package.nix diff --git a/pkgs/by-name/fe/fernglas/package.nix b/pkgs/by-name/fe/fernglas/package.nix new file mode 100644 index 000000000000..3de973612857 --- /dev/null +++ b/pkgs/by-name/fe/fernglas/package.nix @@ -0,0 +1,72 @@ +{ lib +, stdenv +, rustPlatform +, fetchFromGitHub +, fetchYarnDeps +, prefetch-yarn-deps +, python3 +, jq +, yarn +, nodejs-slim +}: + +rustPlatform.buildRustPackage rec { + pname = "fernglas"; + version = "0.2.1"; + + src = fetchFromGitHub { + owner = "wobcom"; + repo = "fernglas"; + rev = "fernglas-${version}"; + hash = "sha256-0wj5AS8RLVr+S/QWWxCsMvmVjmXUWGfR9kPaZimJEss="; + }; + + nativeBuildInputs = [ yarn nodejs-slim prefetch-yarn-deps python3 jq ]; + + nlnog_communities = fetchFromGitHub { + owner = "NLNOG"; + repo = "lg.ring.nlnog.net"; + rev = "20f9a9f3da8b1bc9d7046e88c62df4b41b4efb99"; + hash = "sha256-FlbOBX/+/LLmoqMJLvu59XuHYmiohIhDc1VjkZu4Wzo="; + }; + + cargoHash = "sha256-ls9HvwtbpOwzQbi/+9IbgXurZp0LjQKGZcDuLZlX+Vk="; + + offlineCache = fetchYarnDeps { + yarnLock = src + "/frontend/yarn.lock"; + hash = "sha256-/ubCAs4C5nG8xNC77jTH+cJVNgddSxqGGPEVLDH/Cdo="; + }; + + cargoBuildFlags = lib.optionals (stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isStatic) [ + "--features" "mimalloc" + ] ++ [ + "--features" "embed-static" + ]; + + preBuild = '' + python3 contrib/print_communities.py $nlnog_communities/communities | jq . > src/communities.json + + pushd frontend + + export HOME=$TMPDIR + yarn config --offline set yarn-offline-mirror $offlineCache + fixup-yarn-lock yarn.lock + yarn install --offline --frozen-lockfile --ignore-scripts --no-progress --non-interactive + patchShebangs node_modules/ + + FERNGLAS_VERSION=${version} FERNGLAS_COMMIT=${src.rev} node_modules/.bin/webpack + cp -r dist/ ../static + + popd + ''; + + meta = with lib; { + description = "Looking glass for your network using BGP and BMP as data source"; + homepage = "https://wobcom.github.io/fernglas/"; + changelog = "https://github.com/wobcom/fernglas/releases/tag/fernglas-${version}"; + license = licenses.eupl12; + platforms = platforms.linux; + maintainers = teams.wdz.members; + mainProgram = "fernglas"; + }; +}