{ inputs = { nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1"; # tracks nixpkgs unstable branch flake-parts.url = "github:hercules-ci/flake-parts"; }; outputs = inputs@{ flake-parts, ... }: # https://flake.parts/module-arguments.html flake-parts.lib.mkFlake { inherit inputs; } { flake = { # Put your original flake attributes here. }; systems = [ # systems for which you want to build the `perSystem` attributes "x86_64-linux" "aarch64-darwin" ]; perSystem = { config, self', inputs', pkgs, lib, system, ... }: { packages.default = pkgs.buildGoModule { pname = "nix-cache-login"; version = "0.1.0"; src = ./.; vendorHash = "sha256-1s77IEGP7/6sgXSNdByRQqisLHSeJuRSsrnxUGfkxos="; meta = { description = "CLI tool for authenticating with a Nix binary cache via OIDC"; mainProgram = "nix-cache-login"; }; }; apps.default = { type = "app"; program = "${self'.packages.default}/bin/nix-cache-login"; }; checks.tests = self'.packages.default.overrideAttrs (old: { pname = "nix-cache-login-tests"; checkPhase = '' runHook preCheck go test ./... runHook postCheck ''; doCheck = true; }); devShells = { default = pkgs.mkShell { packages = with pkgs; [ go cobra-cli ]; }; }; }; }; }