2 Commits

Author SHA1 Message Date
adfb087037 Derive build version from git tags via VERSION file.
flake.nix reads from VERSION instead of hardcoding; Makefile gains
a version target that syncs VERSION from the latest git tag and
injects it into go build ldflags.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 11:26:16 -07:00
5570f82eb4 Add version in flake. 2026-03-26 11:14:28 -07:00
3 changed files with 17 additions and 8 deletions

View File

@@ -1,4 +1,6 @@
.PHONY: proto build test lint clean VERSION := $(shell git describe --tags --abbrev=0 | sed 's/^v//')
.PHONY: proto build test lint clean version
proto: proto:
protoc \ protoc \
@@ -7,8 +9,11 @@ proto:
-I proto \ -I proto \
proto/sgard/v1/sgard.proto proto/sgard/v1/sgard.proto
version:
@echo $(VERSION) > VERSION
build: build:
go build ./... go build -ldflags "-X main.version=$(VERSION)" ./...
test: test:
go test ./... go test ./...

1
VERSION Normal file
View File

@@ -0,0 +1 @@
3.1.5

View File

@@ -11,17 +11,20 @@
let let
pkgs = import nixpkgs { inherit system; }; pkgs = import nixpkgs { inherit system; };
in in
let
version = builtins.replaceStrings [ "\n" ] [ "" ] (builtins.readFile ./VERSION);
in
{ {
packages = { packages = {
sgard = pkgs.buildGoModule { sgard = pkgs.buildGoModule rec {
pname = "sgard"; pname = "sgard";
version = "2.1.0"; inherit version;
src = pkgs.lib.cleanSource ./.; src = pkgs.lib.cleanSource ./.;
subPackages = [ "cmd/sgard" "cmd/sgardd" ]; subPackages = [ "cmd/sgard" "cmd/sgardd" ];
vendorHash = "sha256-Z/Ja4j7YesNYefQQcWWRG2v8WuIL+UNqPGwYD5AipZY="; vendorHash = "sha256-Z/Ja4j7YesNYefQQcWWRG2v8WuIL+UNqPGwYD5AipZY=";
ldflags = [ "-s" "-w" ]; ldflags = [ "-s" "-w" "-X main.version=${version}" ];
meta = { meta = {
description = "Shimmering Clarity Gardener: dotfile management"; description = "Shimmering Clarity Gardener: dotfile management";
@@ -29,9 +32,9 @@
}; };
}; };
sgard-fido2 = pkgs.buildGoModule { sgard-fido2 = pkgs.buildGoModule rec {
pname = "sgard-fido2"; pname = "sgard-fido2";
version = "2.1.0"; inherit version;
src = pkgs.lib.cleanSource ./.; src = pkgs.lib.cleanSource ./.;
subPackages = [ "cmd/sgard" "cmd/sgardd" ]; subPackages = [ "cmd/sgard" "cmd/sgardd" ];
@@ -41,7 +44,7 @@
nativeBuildInputs = [ pkgs.pkg-config ]; nativeBuildInputs = [ pkgs.pkg-config ];
tags = [ "fido2" ]; tags = [ "fido2" ];
ldflags = [ "-s" "-w" ]; ldflags = [ "-s" "-w" "-X main.version=${version}" ];
meta = { meta = {
description = "Shimmering Clarity Gardener: dotfile management (with FIDO2 hardware support)"; description = "Shimmering Clarity Gardener: dotfile management (with FIDO2 hardware support)";