From 28d40c3a2507379f406c6a7f1e806348067eacc6 Mon Sep 17 00:00:00 2001
From: Volker Schukai <volker.schukai@schukai.com>
Date: Sat, 5 Aug 2023 22:51:00 +0200
Subject: [PATCH] build: Refactor `flake.nix` file and `docman` package
 definition

- Updated `flake.nix` file with various modifications and additions
- Added build phase and updated version variables in `docman` package definition
- Updated `ldflags` and `vendorSha256` variables in `docman` package definition
- Added a new dependency in `buildInputs` and metadata for `docman` package
---
 flake.nix | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/flake.nix b/flake.nix
index 51e44a3..c05fa48 100644
--- a/flake.nix
+++ b/flake.nix
@@ -31,7 +31,13 @@
 #        url = "https://gitlab.schukai.com/oss/utilities/version/-/archive/0.5.0/version-0.5.0.tar.gz";
 #        # You'll need to provide the correct hash here.
 #        sha256 = "sha256-jzixQKFFW4oxO0S4GYqbkFCXzhBd6com6Z9+MtVKakU=";
-#      };      
+#      };   
+
+     versionAndBuild = pkgs.runCommand "get-version-and-build" {} ''
+        ${versionTool}/bin/version print --git > $out.version
+        ${versionTool}/bin/version build > $out.build
+      '';
+   
 
     in
     {
@@ -40,11 +46,19 @@
       packages = forAllSystems (system:
         let
           pkgs = nixpkgsFor.${system};
-          version = "${versionTool}/bin/version print --git"; # assuming this gives you version
-          build = "${versionTool}/bin/version build"; # assuming this gives you build
+          version = builtins.readFile "${versionAndBuild}.version";
+          build = builtins.readFile "${versionAndBuild}.build";
         in
         {
           docman = pkgs.buildGoModule {
+          
+           buildPhase = ''
+              version=$(${versionTool}/bin/version print --git)
+              build=$(${versionTool}/bin/version build)
+              
+              go build -ldflags "-X 'gitlab.schukai.com/oss/utilities/documentation-manager/release.version=$version' -X 'gitlab.schukai.com/oss/utilities/documentation-manager/release.build=$build'"
+            '';
+          
             name = "docman";
             # In 'nix develop', we don't need a copy of the source tree
             # in the Nix store.
-- 
GitLab