Skip to content
Snippets Groups Projects
Select Git revision
  • 072d5326bd0d527df418a0dc26ebe8d0d7f99534
  • master default protected
  • 0.5.9
  • 0.5.8
  • 0.5.7
  • 0.5.6
  • 0.5.5
  • 0.5.4
  • 0.5.3
  • 0.5.2
  • 0.5.1
  • 0.5.0
  • 0.4.17
  • 0.4.16
  • 0.4.15
  • 0.4.14
  • 0.4.13
  • 0.4.12
  • 0.4.11
  • 0.4.10
  • 0.4.9
  • 0.4.8
22 results

README.md

Blame
  • flake.nix 2.84 KiB
    {
     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 = ./.;
    
          # System types to support.
          supportedSystems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-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;
    
                # This hash locks the dependencies of this package. It is
                # necessary because of how Go requires network access to resolve
                # VCS.  See https://www.tweag.io/blog/2021-03-04-gomod2nix/ for
                # details. Normally one can build with a fake sha256 and rely on native Go
                # mechanisms to tell you what the hash should be or determine what
                # it should be "out-of-band" with other tooling (eg. gomod2nix).
                # To begin with it is recommended to set this, but one must
                # remeber to bump this hash when your dependencies change.
                #vendorSha256 = pkgs.lib.fakeSha256;
    
                vendorSha256 = "sha256-n5XcZjTGWlkXawZn7ln5FOdQ23BYbpFf8XcsRuJTUqo=";
    
                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" ];
                  };    
    
              };
            });
          
          # 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 ];
              };
            });