{ 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); }; }