{ inputs.nixpkgs.url = "nixpkgs/nixos-unstable"; outputs = { self, nixpkgs, }: with nixpkgs.lib; let # List of explicetely unsupported systems explicitelyUnsupportedSystems = []; # Packwiz should support all 64-bit systems supported by go, but nix only # support strictly less, so all nix-supported systems are included # (except ones in explicitelyUnsupportedSystems). supportedSystems = filter # Filter out systems that are explicetely supported (s: ! elem s explicitelyUnsupportedSystems) # This lists all systems reasonably well-supported by nix (import "${nixpkgs}/lib/systems/flake-systems.nix" {}); # Helper generating outputs for each supported system forAllSystems = genAttrs supportedSystems; # Import nixpkgs' package set for each system. nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;}); in { # Packwiz package packages = forAllSystems (system: let pkgs = nixpkgsFor.${system}; in rec { packwiz = pkgs.callPackage ./nix { version = substring 0 8 self.rev or "dirty"; vendorSha256 = readFile ./nix/vendor-sha256; buildGoModule = pkgs.buildGo118Module; }; # Build packwiz by default when no package name is specified default = packwiz; }); # This flake's nix code formatter formatter = forAllSystems (system: nixpkgsFor.${system}.alejandra); }; }