-
Notifications
You must be signed in to change notification settings - Fork 215
/
updateversion.sh
executable file
·83 lines (70 loc) · 2.76 KB
/
updateversion.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/bin/bash
# SPDX-FileCopyrightText: © 2008 Oprea Dan
# SPDX-FileCopyrightText: © 2012 Germar Reitze
# SPDX-FileCopyrightText: © 2022 Jürgen Altfeld (aryoda)
# SPDX-FileCopyrightText: © 2023 Christian Buhtz <[email protected]>
#
# SPDX-License-Identifier: GPL-2.0-or-later
#
# This file is part of the program "Back In time" which is released under GNU
# General Public License v2 (GPLv2). See LICENSES directory or go to
# <https://spdx.org/licenses/GPL-2.0-or-later.html>.
# Updates all version numbers using the VERSION file
# and creates a new DEBIAN changelog file for this version
# by extracting the changes of this version from the
# CHANGES file.
#
# Development notes (May '23, Buhtz):
# Should be treated as a workaround that will get replaced in the future.
# Handling of version numbers and other package metadata can be done very
# elegant and centralized within the Python Packaging process (e.g. using
# pyproject.toml and additional tools.
# Handling of Debian (and PPA) related stuff will be separated from that
# upstream repo because it is distro specific.
# Outdated TODOs:
# TODO Requires refactoring and adjustments to separate
# - the update of version numbers
# - from the preparation of a new DEBIAN package release
# since version updates must be possible without
# a DEBIAN package release.
#
# TODO The version number must still be maintained in two places
# (despite this script):
# 1. File "VERSION"
# 2. As headline in the file "CHANGES"
# If those two numbers do not match the script does
# not extract the correct changes of the version from the CHANGES file.
#
# TODO The name of this script file is misleading (find a better one)
# TODO Make sure this script works idempotent (multiple calls = same result)
# TODO This script does not update release dates scattered around in
# different files (eg. common/man/C/backintime.1 line 1)
VERSION=`cat VERSION`
if [[ $VERSION == *-dev ]]
then
VERSION+="."`git rev-parse --short HEAD`
fi
echo VERSION: $VERSION
MAINTAINER="Germar Reitze <[email protected]>"
# MAINTAINER="BIT Team <[email protected]>"
# MAINTAINER="BIT Team <[email protected]>"
update_app_version () {
echo "Update '$1'"
sed -e "s/^\(\s*\)__version__ = '.*'$/\1__version__ = '$VERSION'/" \
-i $1
}
update_man_page () {
echo "Update '$1'"
sed -e "s/\.TH\(.*\)\"version\([^\"]*\)\"\(.*\)$/.TH\1\"version $VERSION\"\3/" \
-i $1
}
update_omf () {
echo "Update '$1'"
sed -e "s/^\([ \]*\)<version\([^0-9]*\)\([^\"]*\)\(.*\)$/\1<version\2$VERSION\4/" \
-i $1
}
update_app_version common/version.py
update_man_page common/man/C/backintime.1
update_man_page common/man/C/backintime-config.1
update_man_page common/man/C/backintime-askpass.1
update_man_page qt/man/C/backintime-qt.1