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