From 93a38538dd372e95d64150262c0d6b13532972d5 Mon Sep 17 00:00:00 2001 From: Vladislav Navrocky Date: Wed, 12 Feb 2025 01:04:24 +0300 Subject: [PATCH] Release v1.4.0 --- CHANGELOG.md | 20 ++++++++--- README.md | 2 +- cli/main.cpp | 2 +- update_changelog_from_git.sh | 68 ++++++++++++++++++++++++++++++++++++ 4 files changed, 85 insertions(+), 7 deletions(-) create mode 100755 update_changelog_from_git.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index 7aeb8dd..e9be9cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,18 @@ -# 1.3.0 (2025.02.04) +# 1.4.0 (2025-02-12) -* Add function to convert bool string variable to bool (varToBool) -* Remove Mstch engine +- Add command line parameters to read and write file instead of stdin/stdout +- Add pipe syntax for function calling +- Add base64 encode and decode functions +- Add toJson and fromJson functions +- Add shell function +- Add trim function +- Add toBool function -# 1.2.0 (2025.01.23) +# 1.3.0 (2025-02-04) -* Add Inja engine +- Add function to convert bool string variable to bool (varToBool) +- Remove Mstch engine + +# 1.2.0 (2025-01-23) + +- Add Inja engine diff --git a/README.md b/README.md index 7b08ccf..ecfe4e1 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Download and copy binary to any destination specified in `PATH` (~/bin, /usr/loc Do not forget to set execution flag on binary with `chmod`. ```sh -sudo curl https://github.com/navrocky/muenvsubst/releases/download/1.3.0/muenvsubst -Lo /usr/local/bin/muenvsubst +sudo curl https://github.com/navrocky/muenvsubst/releases/download/1.4.0/muenvsubst -Lo /usr/local/bin/muenvsubst sudo chmod +x /usr/local/bin/muenvsubst ``` diff --git a/cli/main.cpp b/cli/main.cpp index eceba75..15367f9 100644 --- a/cli/main.cpp +++ b/cli/main.cpp @@ -7,7 +7,7 @@ using namespace std; using namespace std::placeholders; using namespace Args; -const char* APP_VERSION = "1.3.0"; +const char* APP_VERSION = "1.4.0"; int main(int argc, char** argv, char** envp) { diff --git a/update_changelog_from_git.sh b/update_changelog_from_git.sh new file mode 100755 index 0000000..7761dfc --- /dev/null +++ b/update_changelog_from_git.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +set -e + +CHANGELOG="CHANGELOG.md" + +getLastTagFromChangeLog() { + grep -oE "([0-9X]+\.){2}[0-9X]" <"$1" | head -n1 +} + +printNewRelease() { + LAST_VERSION="$1" + + echo "# X.X.X ($(date +%Y-%m-%d))" + echo + + if [ -z "${LAST_VERSION}" ]; then + COMMITS="HEAD" + else + COMMITS="${LAST_VERSION}..HEAD" + fi + GIT_LOG_COMMAND="git log --format=%s ${COMMITS}" + $GIT_LOG_COMMAND | while IFS=$'\n' read -r LINE; do + echo "- $LINE" + done + + echo +} + +generateChangeLog() { + printNewRelease >>${CHANGELOG} + + echo "The initial ${CHANGELOG} generated" +} + +updateChangeLog() { + LAST_VERSION="$1" + + if [ "${LAST_VERSION}" == "X.X.X" ]; then + echo "The ${CHANGELOG} already contains raw git log" + exit 1 + fi + + TMP_CHANGELOG="${CHANGELOG}.tmp" + [ -f "${TMP_CHANGELOG}" ] && rm ${TMP_CHANGELOG} + + # copy original change log and insert new release + cat ${CHANGELOG} | while IFS=$'\n' read -r LINE; do + if [[ "${LINE}" == *"${LAST_VERSION}"* ]]; then + printNewRelease "${LAST_VERSION}" >>${TMP_CHANGELOG} + fi + echo "${LINE}" >>${TMP_CHANGELOG} + done + + mv ${TMP_CHANGELOG} ${CHANGELOG} + + echo "The ${CHANGELOG} updated with a recent commits after the tag ${LAST_VERSION}" +} + +if [ -f "${CHANGELOG}" ]; then + LAST_VERSION=$(getLastTagFromChangeLog ${CHANGELOG}) +fi + +if [ -z "${LAST_VERSION}" ]; then + generateChangeLog +else + updateChangeLog "${LAST_VERSION}" +fi