{ outputs = { self , nixpkgs , flake-utils , gomod2nix , gitignore , git-hooks , ... }: let name = "project"; version = "0.0.0"; in { } // flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; overlays = [ gomod2nix.overlays.default gitignore.overlay ]; }; in { devShells.default = pkgs.callPackage ./shell.nix { inherit (self.outputs.checks.${system}) pre-commit-check; inherit name version; }; packages.default = pkgs.callPackage ./. { inherit name version; }; checks = { pre-commit-check = git-hooks.lib.${system}.run { src = ./.; hooks = { nixpkgs-fmt.enable = true; gofmt.enable = true; govet.enable = true; golangci-lint.enable = true; }; }; }; formatter = pkgs.nixpkgs-fmt; }); inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; systems.url = "github:nix-systems/x86_64-linux"; flake-utils = { url = "github:numtide/flake-utils"; inputs.systems.follows = "systems"; }; gomod2nix = { url = "github:marksisson/gomod2nix?ref=patches/fix-mkgoenv-to-allow-passing-more-attributes"; inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-utils.follows = "flake-utils"; }; git-hooks = { url = "github:cachix/git-hooks.nix"; inputs.nixpkgs.follows = "nixpkgs"; inputs.gitignore.follows = "gitignore"; }; gitignore = { url = "github:hercules-ci/gitignore.nix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; }