| 12345678910111213141516171819202122232425262728293031 |
- #!/bin/sh
- # gen_version.sh -- write OpenPuck/git_version.h with the release/build identity shown in WebUSB.
- # Keep both semver + hash so local untagged builds still expose provenance.
- # Run this BEFORE `arduino-cli compile`. The generated header is git-ignored, so generating it never itself
- # marks the tree dirty.
- set -e
- cd "$(dirname "$0")"
- HASH=$(git rev-parse --short=8 HEAD 2>/dev/null || echo unknown)
- VERSION="${OPK_BUILD_VERSION:-}"
- if [ -z "$VERSION" ]; then
- VERSION="$(
- git tag --points-at HEAD 2>/dev/null \
- | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' \
- | sort -V \
- | tail -n1 || true
- )"
- fi
- # Dirty = any tracked change OR untracked file (porcelain is empty only on a clean tree). git_version.h is
- # git-ignored so it doesn't count.
- if [ -z "$(git status --porcelain 2>/dev/null)" ]; then DIRTY=0; else DIRTY=1; fi
- cat > OpenPuck/git_version.h <<EOF
- // AUTO-GENERATED by gen_version.sh -- do not edit, do not commit (git-ignored).
- #pragma once
- #define OPK_BUILD_VERSION "$VERSION"
- #define OPK_GIT_HASH "$HASH"
- #define OPK_GIT_DIRTY $DIRTY
- EOF
- echo "OpenPuck/git_version.h: version=${VERSION:-none} hash=$HASH dirty=$DIRTY"
|