forked from bb-Ricardo/netbox-sync
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathset_version.sh
executable file
·54 lines (42 loc) · 1.7 KB
/
set_version.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env bash
# Copyright (c) 2020 - 2023 Ricardo Bartels. All rights reserved.
#
# netbox-sync.py
#
# This work is licensed under the terms of the MIT license.
# For a copy, see file LICENSE.txt included in this
# repository or visit: <https://opensource.org/licenses/MIT>.
EXAMPLE_CONFIG_FILE="settings-example.ini"
VERSION_DATA_FILE="module/__init__.py"
README_FILE="README.md"
VERSION_TO_SET="$1"
COPYRIGHT_PATTERN="# Copyright (c) 2020 - 2023 Ricardo Bartels. All rights reserved."
BASE_PATH="$(realpath "$(dirname "${0}")/..")"
# shellcheck disable=SC2181
[[ ${?} -ne 0 ]] && exit 1
cd "${BASE_PATH}" || exit 1
[[ -z "${VERSION_TO_SET}" ]] && echo "no version defined. $0 \$version" && exit 1
read -rp "Should '$VERSION_TO_SET' be set as the new version [yN]: " -n1 ANSWER && echo
[[ ! "${ANSWER}" =~ [yY] ]] && exit 0
# setting new version and date
sed -i "" -e 's/^__version__.*/__version__ = "'"${VERSION_TO_SET}"'"/g' "${VERSION_DATA_FILE}"
sed -i "" -e 's/^__version_date__.*/__version_date__ = "'"$(date +%F)"'"/g' "${VERSION_DATA_FILE}"
# update config
[[ -e "${EXAMPLE_CONFIG_FILE}" ]] && rm "$EXAMPLE_CONFIG_FILE"
./netbox-sync.py -g -c "${EXAMPLE_CONFIG_FILE}"
# update help in README.md
README_TOP=$(sed '/# Running the script/q' "${README_FILE}")
README_BOTTOM=$(sed -n '/## TESTING/,$ p' "${README_FILE}")
{
echo "${README_TOP}"
echo -e "\n"'```'
./netbox-sync.py -h
echo -e '```'"\n"
echo "${README_BOTTOM}"
} > "${README_FILE}"
# update COPYRIGHT notice date
NEW_COPYRIGHT_NOTICE="${COPYRIGHT_PATTERN//..../$(date +%Y)}"
grep -lR "$COPYRIGHT_PATTERN" "${BASE_PATH}" | while read -r FILE; do
sed -i "" -e 's/'"${COPYRIGHT_PATTERN}"'/'"${NEW_COPYRIGHT_NOTICE}"'/g' "${FILE}"
done
# EOF