spec_metadata.sh

 1#!/usr/bin/env bash
 2set -euo pipefail
 3
 4# Collect metadata
 5DATETIME_TZ=$(date '+%Y-%m-%d %H:%M:%S %Z')
 6FILENAME_TS=$(date '+%Y-%m-%d_%H-%M-%S')
 7
 8if command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
 9  REPO_ROOT=$(git rev-parse --show-toplevel)
10  REPO_NAME=$(basename "$REPO_ROOT")
11  GIT_BRANCH=$(git branch --show-current 2>/dev/null || git rev-parse --abbrev-ref HEAD)
12  GIT_COMMIT=$(git rev-parse HEAD)
13else
14  REPO_ROOT=""
15  REPO_NAME=""
16  GIT_BRANCH=""
17  GIT_COMMIT=""
18fi
19
20# Print similar to the individual command outputs
21echo "Current Date/Time (TZ): $DATETIME_TZ"
22[ -n "$GIT_COMMIT" ] && echo "Current Git Commit Hash: $GIT_COMMIT"
23[ -n "$GIT_BRANCH" ] && echo "Current Branch Name: $GIT_BRANCH"
24[ -n "$REPO_NAME" ] && echo "Repository Name: $REPO_NAME"
25echo "Timestamp For Filename: $FILENAME_TS"