use shfmt for shell script
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Ivan Schaller 2022-05-11 20:24:15 +02:00
parent 030216cc33
commit 5943732b7f

View file

@ -1,101 +1,103 @@
#!/bin/bash #!/bin/bash
# shellcheck disable=SC2016
# script to set the version numbers on all files or generate changelogs for a release # script to set the version numbers on all files or generate changelogs for a release
function pre_checks() { function pre_checks() {
# prechecks # prechecks
if [[ -z "${2}" ]]; then if [[ -z "${2}" ]]; then
printf 'No version was provided\n' printf 'No version was provided\n'
printf 'Error\n' printf 'Error\n'
exit 1 exit 1
fi fi
# set mdlp version # set mdlp version
mdlp_version="${2}" mdlp_version="${2}"
} }
function show_help(){ function show_help() {
printf 'Script to change the version numbers of mangadlp in the build files, or generate release-notes for a release\n' printf 'Script to change the version numbers of mangadlp in the build files, or generate release-notes for a release\n'
printf '\nUsage:\n' printf '\nUsage:\n'
printf ' ./release.sh <option> <mdlp-version>\n' printf ' ./release.sh <option> <mdlp-version>\n'
printf '\nOptions:\n' printf '\nOptions:\n'
printf ' --set-version - Set version number on all build files\n' printf ' --set-version - Set version number on all build files\n'
printf ' --get-changelog - Create RELEASENOTES.md for github/gitea release\n' printf ' --get-changelog - Create RELEASENOTES.md for github/gitea release\n'
printf '\nExample:\n' printf '\nExample:\n'
printf ' ./release.sh --get-releasenotes "2.0.5"\n' printf ' ./release.sh --get-releasenotes "2.0.5"\n'
exit 1 exit 1
} }
function set_ver_docker() { function set_ver_docker() {
printf 'Changing version in docker-files\n' printf 'Changing version in docker-files\n'
local docker_files docker_regex local docker_files docker_regex
docker_files=( docker_files=(
'docker/Dockerfile.amd64' 'docker/Dockerfile.amd64'
'docker/Dockerfile.arm64' 'docker/Dockerfile.arm64'
) )
docker_regex='s,^ARG MDLP_VERSION=.*$,ARG MDLP_VERSION='"${mdlp_version}"',g' docker_regex='s,^ARG MDLP_VERSION=.*$,ARG MDLP_VERSION='"${mdlp_version}"',g'
for file in "${docker_files[@]}"; do for file in "${docker_files[@]}"; do
if ! sed -i "${docker_regex}" "${file}"; then return 1; fi if ! sed -i "${docker_regex}" "${file}"; then return 1; fi
done done
printf 'Done\n' printf 'Done\n'
} }
function set_ver_pypi() { function set_ver_pypi() {
printf 'Changing version in pypi-files\n' printf 'Changing version in pypi-files\n'
local pypi_files pypi_regex local pypi_files pypi_regex
pypi_files=( pypi_files=(
'setup.py' 'setup.py'
) )
pypi_regex='s/version=.*$/version=\"'"${mdlp_version}"'\",/g' pypi_regex='s/version=.*$/version=\"'"${mdlp_version}"'\",/g'
for file in "${pypi_files[@]}"; do for file in "${pypi_files[@]}"; do
if ! sed -i "${pypi_regex}" "${file}"; then return 1; fi if ! sed -i "${pypi_regex}" "${file}"; then return 1; fi
done done
printf 'Done\n' printf 'Done\n'
} }
# set version number in files # set version number in files
function set_version() { function set_version() {
# check for version # check for version
if [[ -z "${mdlp_version}" ]]; then if [[ -z "${mdlp_version}" ]]; then
printf 'You need to specify a version with $1\n' printf 'You need to specify a version with $1\n'
exit 1 exit 1
fi fi
# set docker versions # set docker versions
if ! set_ver_docker; then if ! set_ver_docker; then
printf 'Error\n'; fi printf 'Error\n'
# set pypi versions fi
if ! set_ver_pypi; then # set pypi versions
printf 'Error\n'; fi if ! set_ver_pypi; then
printf 'Error\n'
fi
} }
# create changelog for release # create changelog for release
function get_releasenotes() { function get_releasenotes() {
printf 'Creating release-notes\n' printf 'Creating release-notes\n'
# check for version # check for version
if [[ -z "${mdlp_version}" ]]; then if [[ -z "${mdlp_version}" ]]; then
printf 'You need to specify a version with $1\n' printf 'You need to specify a version with $1\n'
exit 1 exit 1
fi fi
awk -v ver="[${mdlp_version}]" \ awk -v ver="[${mdlp_version}]" \
'/^## / { if (p) { exit }; if ($2 == ver) { p=1; next } } p && NF' \ '/^## / { if (p) { exit }; if ($2 == ver) { p=1; next } } p && NF' \
'CHANGELOG.md' > 'RELEASENOTES.md' 'CHANGELOG.md' >'RELEASENOTES.md'
printf 'Done\n' printf 'Done\n'
} }
# check options # check options
case "${1}" in case "${1}" in
'--help'|'-h'|'help') '--help' | '-h' | 'help')
show_help show_help
;; ;;
'--set-version') '--set-version')
pre_checks "${@}" pre_checks "${@}"
set_version set_version
;; ;;
'--get-releasenotes') '--get-releasenotes')
pre_checks "${@}" pre_checks "${@}"
get_releasenotes get_releasenotes
;; ;;
*) *)
show_help show_help
;; ;;
esac esac