From b6c567adb188ec34f4a77f234bebbe52493bf3a4 Mon Sep 17 00:00:00 2001
From: Timo Furrer <tfurrer@gitlab.com>
Date: Thu, 31 Oct 2024 13:26:51 +0100
Subject: [PATCH] Outsource README generation script from Makefile into script

Changelog: development
---
 .gitlab/scripts/generate-readme.sh | 24 ++++++++++++++++++++++++
 Makefile                           | 16 +++-------------
 2 files changed, 27 insertions(+), 13 deletions(-)
 create mode 100755 .gitlab/scripts/generate-readme.sh

diff --git a/.gitlab/scripts/generate-readme.sh b/.gitlab/scripts/generate-readme.sh
new file mode 100755
index 0000000..e412ade
--- /dev/null
+++ b/.gitlab/scripts/generate-readme.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+
+set -o errexit
+set -o errtrace
+
+script_dir=$(dirname "$0")
+
+csplit -sf readme -n 1 "${script_dir}/../README.md.template" '/<RENDER>/'
+
+# shellcheck disable=SC2016
+{
+  echo '<!-- This document is generated by `make docs` from `.gitlab/README.md` -->'
+  echo
+  cat readme0
+  echo
+  echo '### Available OpenTofu Versions'
+  echo
+  echo 'The following OpenTofu versions are available with this component via the `opentofu_version` input:'
+  echo
+  yq '.".data".supported_versions | .[] | "- [`" + . + "`](https://github.com/opentofu/opentofu/releases/tag/v" + . + ")"' "${script_dir}/../../opentofu_versions.yaml"
+  tail -n+2 readme1
+} > "${script_dir}/../../README.md"
+
+rm -f readme0 readme1 readme_inputs.md
diff --git a/Makefile b/Makefile
index e6baaae..eb62807 100644
--- a/Makefile
+++ b/Makefile
@@ -1,22 +1,12 @@
-RELEASE_SCRIPT = ./.gitlab/scripts/release.sh
+GENERATE_README_SCRIPT ?= ./.gitlab/scripts/generate-readme.sh
+RELEASE_SCRIPT ?= ./.gitlab/scripts/release.sh
 
 .PHONY: all
 all: docs
 
 .PHONY: docs
 docs:
-	csplit -sf readme -n 1 .gitlab/README.md.template '/<RENDER>/'
-	echo '<!-- This document is generated by `make docs` from `.gitlab/README.md` -->' > README.md
-	echo >> README.md
-	cat readme0 >> README.md
-	echo >> README.md
-	echo '### Available OpenTofu Versions' >> README.md
-	echo >> README.md
-	echo 'The following OpenTofu versions are available with this component via the `opentofu_version` input:' >> README.md
-	echo >> README.md
-	yq '.".data".supported_versions | .[] | "- [`" + . + "`](https://github.com/opentofu/opentofu/releases/tag/v" + . + ")"' opentofu_versions.yaml >> README.md
-	tail -n+2 readme1 >> README.md
-	rm -f readme0 readme1 readme_inputs.md
+	$(GENERATE_README_SCRIPT)
 
 .PHONY: release
 release:
-- 
GitLab