Files
subdomain_server/scripts/update-variables.sh
2025-10-01 20:27:37 -04:00

50 lines
2.4 KiB
Bash

#!/bin/sh
# Updates metadata using variables in template_vars.env
# To be used for updating already defined metadata in an
# existing project, when the values in the template_vars.env
# file have changed
# Currently updates information for project version,
# project description, and project keywords
# TODO: Add updating of additional metadata
# save to restore working directory later
ORIGPATH="$(pwd)"
# configure path information and working directory
SCRIPTPATH="$0"
cd "$(dirname ${SCRIPTPATH})/.." || exit 253
PROJECTDIR="$(pwd)"
# source template_vars.env as defined in SOURCEFILE
SOURCEFILE="${PROJECTDIR}/template_vars.env"
if [ -f "${SOURCEFILE}" ]; then
# shellcheck disable=SC1090
. "$SOURCEFILE"
else
echo "Error: environment variables file not found: ${SOURCEFILE}"
exit 253
fi
KW=$(echo "${TPL_PROJECTKEYWORDS}" | python -c 'import sys;import re;print( ",".join(["\"{}\"".format(re.sub("[^a-zA-Z01-9 ]","",e.strip())) for e in (sys.stdin.read()).split(",") if e.strip()]) )')
SED_CMD=$(which sed)
$SED_CMD -E "s/version\s*=\s*\"[0-9\.\-\_a-zA-Z]+\"/version = \"${TPL_PROJECTVERSION}\"/g" "${PROJECTDIR}/pyproject.toml"
$SED_CMD -E "s/description\s*=\s*\".*?\"/description = \"${TPL_PROJECTDESCRIPTION}\"/g" "${PROJECTDIR}/pyproject.toml"
$SED_CMD -E "s/^#?\s*keywords\s*=\s*\[.*\]/keywords = [\"${KW}\"]/g" "${PROJECTDIR}/pyproject.toml"
$SED_CMD -i "s/^__version__ = .*/__version__ = \"${TPL_PROJECTVERSION}\"/" "${PROJECTDIR}/src/${TPL_PROJECTPREFIX}${TPL_PROJECTNAME}/__init__.py"
$SED_CMD -i "s/^__author__ = .*/__author__ = \"${TPL_COMPANYNAME}(${TPL_AUTHORNAME})\"/" "${PROJECTDIR}/src/${TPL_PROJECTPREFIX}${TPL_PROJECTNAME}/__init__.py"
$SED_CMD -i "s/^__email__ = .*/__email__ = \"${TPL_AUTHOREMAIL}\"/" "${PROJECTDIR}/src/${TPL_PROJECTPREFIX}${TPL_PROJECTNAME}/__init__.py"
$SED_CMD -i "s/^__projectDescription__ = .*/__projectDescription__ = \"${TPL_PROJECTDESCRIPTION}\"/" "${PROJECTDIR}/src/${TPL_PROJECTPREFIX}${TPL_PROJECTNAME}/__init__.py"
$SED_CMD -i "s/^__description__ = .*/__description__ = \"${TPL_PROJECTDESCRIPTION}\"/" "${PROJECTDIR}/src/${TPL_PROJECTPREFIX}${TPL_PROJECTNAME}/__init__.py"
# release = '0.0.1'
$SED_CMD -i "s/^\s*release\s*=.*?/release = '${TPL_PROJECTVERSION}'/" "${PROJECTDIR}/docs/conf.py"
echo "${TPL_PROJECTVERSION}" > "${PROJECTDIR}/src/${TPL_PROJECTPREFIX}${TPL_PROJECTNAME}/version.txt"
cd "${ORIGPATH}" || exit 252