{ description = "Version is a program that automates and simplifies the process of incrementing version numbers for software projects."; # Nixpkgs / NixOS version to use. inputs.nixpkgs.url = "nixpkgs/nixos-23.05"; outputs = { self, nixpkgs, }: let # to work with older version of flakes lastModifiedDate = self.lastModifiedDate or self.lastModified or "19700101"; rootPath = ./.; project = import "${rootPath}/project.nix"; # System types to support. supportedSystems = ["x86_64-linux" "x86_64-windows" "x86_64-darwin"]; # Helper function to generate an attrset '{ x86_64-linux = f "x86_64-linux"; ... }'. forAllSystems = nixpkgs.lib.genAttrs supportedSystems; # Nixpkgs instantiated for supported system types. nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;}); in { packages = forAllSystems (system: let pkgs = nixpkgsFor.${system}; in { version = pkgs.buildGoModule { name = "version"; # In 'nix develop', we don't need a copy of the source tree # in the Nix store. src = ././source; tags = []; # add your tags here (eq "netgo" "osusergo" "static_build") #vendorHash = pkgs.lib.fakeHash; vendorHash = project.vendorHash; meta = with nixpkgs.legacyPackages.${system}.lib; { description = "Version is a program that automates and simplifies the process of incrementing version numbers for software projects."; homepage = "https://gitlab.schukai.com/oss/utilities/version"; license = licenses.mit; maintainers = with maintainers; ["schukai GmbH"]; }; }; default = self.packages.${system}.version; }); # Add dependencies that are only needed for development devShells = forAllSystems (system: let pkgs = nixpkgsFor.${system}; in { default = pkgs.mkShell { buildInputs = with pkgs; [go gopls gotools go-tools]; }; }); # The default package for 'nix build'. This makes sense if the # flake provides only one package or there is a clear "main" # package. defaultPackage = forAllSystems (system: self.packages.${system}.version); }; }