48 lines
1.3 KiB
Bash
Executable File
48 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# --- Date / time (no spaces/colons) ---
|
|
DATESTAMP=$(date +"%d%m%Y_%H%M%S")
|
|
|
|
# --- Git info (with fallbacks if not a git repo) ---
|
|
if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
|
GITHASH=$(git rev-parse --short HEAD 2>/dev/null || echo "no-git")
|
|
BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "no-branch")
|
|
REPO_PATH=$(git rev-parse --show-toplevel 2>/dev/null || echo ".")
|
|
REPO_NAME=$(basename "$REPO_PATH")
|
|
REMOTE_URL=$(git remote get-url origin 2>/dev/null || echo "no-remote")
|
|
else
|
|
GITHASH="no-git"
|
|
BRANCH="no-branch"
|
|
REPO_NAME="no-repo"
|
|
REMOTE_URL="unknown"
|
|
fi
|
|
|
|
# --- Host and user ---
|
|
HOSTNAME=$(hostname)
|
|
USER_NAME=${USER:-unknown}
|
|
|
|
# --- Where to put the header (CubeIDE default) ---
|
|
OUT_DIR="." # "Core/Inc"
|
|
OUT_FILE="${OUT_DIR}/build_info.h"
|
|
|
|
mkdir -p "$OUT_DIR"
|
|
|
|
cat <<EOF > "$OUT_FILE"
|
|
/* Auto-generated: DO NOT EDIT */
|
|
#ifndef BUILD_INFO_H
|
|
#define BUILD_INFO_H
|
|
|
|
#define BUILD_DATE "${DATESTAMP}"
|
|
#define BUILD_GIT_HASH "${GITHASH}"
|
|
#define BUILD_BRANCH "${BRANCH}"
|
|
#define BUILD_REPO "${REPO_NAME}"
|
|
#define BUILD_HOST "${HOSTNAME}"
|
|
#define BUILD_USER "${USER_NAME}"
|
|
#define REMOTE_URL "${REMOTE_URL}"
|
|
|
|
#endif /* BUILD_INFO_H */
|
|
EOF
|
|
|
|
echo "Generated ${OUT_FILE}"
|
|
cat ${OUT_FILE}
|