forked from qTox/qTox
-
Notifications
You must be signed in to change notification settings - Fork 5
/
update-versions.sh
executable file
·92 lines (77 loc) · 2.53 KB
/
update-versions.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
84
85
86
87
88
89
90
91
92
#!/bin/bash
# Copyright © 2016-2019 by The qTox Project Contributors
#
# This file is part of qTox, a Qt-based graphical interface for Tox.
# qTox is libre software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# qTox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with qTox. If not, see <http://www.gnu.org/licenses/>
# script to change versions in the files for osx and windows "packages"
#
# it should be run before releasing a new version
#
# NOTE: it checkouts the files before appending a version to them!
#
# requires:
# * GNU sed
# usage:
#
# ./$script $version
#
# $version has to be composed of at least one number/dot
set -eu -o pipefail
readonly SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
readonly BASE_DIR="$SCRIPT_DIR/../"
readonly VERSION_PATTERN="[0-9]+\.[0-9]+\.[0-9]+"
update_windows() {
( cd "$BASE_DIR/windows"
./qtox-nsi-version.sh "$@" )
}
update_osx() {
( cd "$BASE_DIR/osx"
./update-plist-version.sh "$@" )
}
update_readme() {
cd "$BASE_DIR"
sed -ri "s|(github.com/qTox/qTox/releases/download/v)$VERSION_PATTERN|\1$@|g" README.md
# for flatpak and AppImage
sed -ri "s|(github.com/qTox/qTox/releases/download/v$VERSION_PATTERN/qTox-v)$VERSION_PATTERN|\1$@|g" README.md
}
update_appdata() {
cd "$BASE_DIR"/res/
local isodate="$(date --iso-8601)"
sed -ri "s|(<release version=\")$VERSION_PATTERN|\1$@|g" io.github.qtox.qTox.appdata.xml
sed -ri "s|(<release version=\"$VERSION_PATTERN\" date=\").{10}|\1"$isodate"|g" io.github.qtox.qTox.appdata.xml
}
# exit if supplied arg is not a version
is_version() {
if [[ ! $@ =~ $VERSION_PATTERN ]]
then
echo "Not a version: $@"
echo "Must match: $VERSION_PATTERN"
exit 1
fi
}
main() {
is_version "$@"
# osx cannot into proper sed
if [[ ! "$OSTYPE" == "darwin"* ]]
then
update_osx "$@"
update_windows "$@"
update_readme "$@"
update_appdata "$@"
else
# TODO: actually check whether there is a GNU sed on osx
echo "OSX's sed not supported. Get a proper one."
fi
}
main "$@"