{
 description = "docman is a document management tool";

  inputs = {
    nixpkgs.url = "nixpkgs/nixos-23.05";
    versionTool.url = "https://gitlab.schukai.com/oss/utilities/version/-/archive/0.5.0/version-0.5.0.tar.gz";
  };

  outputs = { self, nixpkgs, versionTool, ... }:
    let

      lastModifiedDate = self.lastModifiedDate or self.lastModified or "19700101";

      rootPath = ./.;

      supportedSystems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];

      forAllSystems = nixpkgs.lib.genAttrs supportedSystems;

      nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; });
      
      pkgs = import nixpkgs { system = "x86_64-linux"; };
      
    in
    {


      packages = forAllSystems (system:
        let
          pkgs = nixpkgsFor.${system};
          
          versionToolPackage = versionTool.defaultPackage.${system};
          
        versionAndBuild = pkgs.runCommand "get-version-and-build" {
            outputFiles = [ "version" "build" ];
        } ''
            ${versionToolPackage}/bin/version print --git > $out/version
            ${versionToolPackage}/bin/version build > $out/build
        '';
        
        version = builtins.trace (builtins.readFile "${versionAndBuild}/version") "Reading version";
        build = builtins.trace (builtins.readFile "${versionAndBuild}/build") "Reading build";
          
          
          
          
        in
        {
          docman = pkgs.buildGoModule {
          
            name = "docman";
            src = ././source;
            version = "${version}";

            vendorSha256 = "sha256-81IBG8H1jsYKD+tmFeCpAWFdz6cuQDt9r+FV56xboBU=";
            
            ldflags = [
                 "-X 'gitlab.schukai.com/oss/utilities/documentation-manager/release.version=${version}' -X 'gitlab.schukai.com/oss/utilities/documentation-manager/release.build=${build}'"
                      ];
                      
            buildInputs = [ versionTool.defaultPackage.${system} ]; 

            meta = with nixpkgs.legacyPackages.${system}.lib; {
                description = "docman is a document management tool";
                homepage = "https://gitlab.schukai.com/oss/utilities/documentation-manager";
                license = licenses.mit;
                maintainers = with maintainers; [ "schukai GmbH" ];
              };    

          };
        });
      
      devShells = forAllSystems (system:
        let 
          pkgs = nixpkgsFor.${system};
        in
        {
          default = pkgs.mkShell {
            buildInputs = with pkgs; [ go gopls gotools go-tools ];
          };
        });


      defaultPackage = forAllSystems (system: self.packages.${system}.docman);
    };
}