This commit is contained in:
fwastring 2025-10-13 11:02:58 +02:00
parent 970cb0a321
commit 268fa2ba6f

View file

@ -8,58 +8,62 @@
outputs = outputs =
{ self, nixpkgs, flake-utils }: { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system: let
let perSystem = flake-utils.lib.eachDefaultSystem (system:
pkgs = import nixpkgs { inherit system; }; let
lib = pkgs.lib; pkgs = import nixpkgs { inherit system; };
version = if self ? rev && self.rev != null then self.rev else "unstable"; lib = pkgs.lib;
in version = if self ? rev && self.rev != null then self.rev else "unstable";
{ in
packages = { {
default = pkgs.stdenv.mkDerivation { packages = {
pname = "bbk"; default = pkgs.stdenv.mkDerivation {
inherit version; pname = "bbk";
src = self; inherit version;
src = self;
nativeBuildInputs = [ pkgs.pkg-config ]; nativeBuildInputs = [ pkgs.pkg-config ];
buildInputs = [ pkgs.gnutls ]; buildInputs = [ pkgs.gnutls ];
makeFlags = [ "GNUTLS=1" ]; makeFlags = [ "GNUTLS=1" ];
buildPhase = '' buildPhase = ''
runHook preBuild runHook preBuild
make -C src/cli make -C src/cli
runHook postBuild runHook postBuild
''; '';
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
install -Dm755 src/cli/cli $out/bin/bbk install -Dm755 src/cli/cli $out/bin/bbk
runHook postInstall runHook postInstall
''; '';
meta = { meta = {
description = "Swedish Internet Foundation's Bredbandskollen CLI bandwidth measurement tool"; description = "Swedish Internet Foundation's Bredbandskollen CLI bandwidth measurement tool";
homepage = "https://www.bredbandskollen.se/"; homepage = "https://www.bredbandskollen.se/";
license = lib.licenses.mit; license = lib.licenses.mit;
maintainers = with lib.maintainers; [ "Fredrik Wastring" ]; maintainers = with lib.maintainers; [ "Fredrik Wastring" ];
mainProgram = "bbk"; mainProgram = "bbk";
};
}; };
}; };
};
devShells.default = pkgs.mkShell { devShells.default = pkgs.mkShell {
buildInputs = [ buildInputs = [
pkgs.gnutls pkgs.gnutls
pkgs.pkg-config pkgs.pkg-config
pkgs.gnumake pkgs.gnumake
]; ];
}; };
}
);
in
perSystem // {
nixosModules.default = nixosModules.default =
{ pkgs, ... }: { pkgs, ... }:
{ {
environment.systemPackages = [ self.packages.${pkgs.system}.default ]; environment.systemPackages = [ self.packages.${pkgs.system}.default ];
}; };
} };
);
} }