personal memory agent
0

Configure Feed

Select the types of activity you want to include in your feed.

solstone / scripts / extract_changelog.sh
908 B 37 lines
1#!/usr/bin/env bash 2# SPDX-License-Identifier: AGPL-3.0-only 3# Copyright (c) 2026 sol pbc 4# 5# Extract a single version's block from CHANGELOG.md. 6# Usage: extract_changelog.sh <version> [<changelog-path>] 7set -euo pipefail 8 9if [[ $# -lt 1 || $# -gt 2 ]]; then 10 echo "usage: $(basename "$0") <version> [<changelog-path>]" >&2 11 exit 2 12fi 13 14VERSION="$1" 15CHANGELOG="${2:-CHANGELOG.md}" 16 17if [[ ! -f "$CHANGELOG" ]]; then 18 echo "error: $CHANGELOG not found" >&2 19 exit 1 20fi 21 22# Escape regex metacharacters in the version (dots, etc.) for the awk pattern. 23ESCAPED=$(printf '%s\n' "$VERSION" | sed 's/[][\\.*^$/]/\\&/g') 24AWK_ESCAPED="${ESCAPED//\\/\\\\}" 25 26OUTPUT=$(awk -v pat="^## \\\\[${AWK_ESCAPED}\\\\]" ' 27 /^## \[/ { if (seen) exit } 28 $0 ~ pat { seen=1 } 29 seen 30' "$CHANGELOG") 31 32if [[ -z "$OUTPUT" ]]; then 33 echo "error: no CHANGELOG.md entry for version ${VERSION}" >&2 34 exit 1 35fi 36 37printf '%s\n' "$OUTPUT"