summaryrefslogtreecommitdiffhomepage
path: root/version-metadata.sh
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2021-03-19 12:02:58 +0100
committerLinus Färnstrand <linus@mullvad.net>2021-03-22 09:33:09 +0100
commit8acc25cd0355f6aa1fe09faf55cb4eb8c50f76aa (patch)
tree23e2299532a3696aeef65f710dbeea2ae3e38e1a /version-metadata.sh
parentb91a53282a73f01eff6afd369212e6e900e62ea7 (diff)
downloadmullvadvpn-8acc25cd0355f6aa1fe09faf55cb4eb8c50f76aa.tar.xz
mullvadvpn-8acc25cd0355f6aa1fe09faf55cb4eb8c50f76aa.zip
Make version-metadat.sh cooler
Diffstat (limited to 'version-metadata.sh')
-rwxr-xr-xversion-metadata.sh92
1 files changed, 65 insertions, 27 deletions
diff --git a/version-metadata.sh b/version-metadata.sh
index 26fbce6af4..119de373ca 100755
--- a/version-metadata.sh
+++ b/version-metadata.sh
@@ -8,9 +8,6 @@ set -eu
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "$SCRIPT_DIR"
-COMMAND="$1"
-shift 1
-
INCLUDED_CRATES=(
"mullvad-daemon"
"mullvad-cli"
@@ -39,7 +36,14 @@ function inject_version {
local semver_minor=${BASH_REMATCH[2]}
local semver_patch="0"
- if [[ "${2:-""}" != "--only-android" ]]; then
+ echo "Setting Rust crate versions to $semver_version"
+ # Rust crates
+ sed -i.bak -Ee "s/^version = \"[^\"]+\"\$/version = \"$semver_version\"/g" \
+ "${MANIFESTS[@]}"
+
+ if [[ "$DESKTOP" == "true" ]]; then
+ echo "Setting desktop version to $semver_version"
+
# Electron GUI
cp gui/package.json gui/package.json.bak
cp gui/package-lock.json gui/package-lock.json.bak
@@ -55,12 +59,8 @@ function inject_version {
EOF
fi
- # Rust crates
- sed -i.bak -Ee "s/^version = \"[^\"]+\"\$/version = \"$semver_version\"/g" \
- "${MANIFESTS[@]}"
-
- # Android
- if [[ ("$(uname -s)" == "Linux") ]]; then
+ if [[ "$ANDROID" == "true" ]]; then
+ # Android
local version_year
version_year=$(printf "%02d" "${BASH_REMATCH[1]}")
local version_number
@@ -70,6 +70,8 @@ EOF
version_beta=$(printf "%02d" "${BASH_REMATCH[4]:-99}")
local android_version_code=${version_year}${version_number}${version_patch}${version_beta}
+ echo "Setting Android versionName to $product_version and versionCode to $android_version_code"
+
cp android/build.gradle android/build.gradle.bak
sed -i -Ee "s/versionCode [0-9]+/versionCode $android_version_code/g" \
android/build.gradle
@@ -81,20 +83,22 @@ EOF
function restore_backup {
set +e
- if [[ "${1:-""}" != "--only-android" ]]; then
+ # Rust crates
+ for toml in "${MANIFESTS[@]}"; do
+ mv "${toml}.bak" "${toml}"
+ done
+
+ if [[ "$DESKTOP" == "true" ]]; then
# Electron GUI
mv gui/package.json.bak gui/package.json
mv gui/package-lock.json.bak gui/package-lock.json
# Windows C++
mv dist-assets/windows/version.h.bak dist-assets/windows/version.h
+
fi
- # Rust crates
- for toml in "${MANIFESTS[@]}"; do
- mv "${toml}.bak" "${toml}"
- done
- # Android
- if [[ ("$(uname -s)" == "Linux") ]]; then
+ if [[ "$ANDROID" == "true" ]]; then
+ # Android
mv android/build.gradle.bak android/build.gradle
fi
set -e
@@ -103,34 +107,68 @@ function restore_backup {
function delete_backup {
set +e
- if [[ "${1:-""}" != "--only-android" ]]; then
+ # Rust crates
+ for toml in "${MANIFESTS[@]}"; do
+ rm "${toml}.bak"
+ done
+
+ if [[ "$DESKTOP" == "true" ]]; then
# Electron GUI
rm gui/package.json.bak
rm gui/package-lock.json.bak
# Windows C++
rm dist-assets/windows/version.h.bak
+
fi
- # Rust crates
- for toml in "${MANIFESTS[@]}"; do
- rm "${toml}.bak"
- done
- # Android
- if [[ ("$(uname -s)" == "Linux") ]]; then
+ if [[ "$ANDROID" == "true" ]]; then
+ # Android
rm android/build.gradle.bak
fi
set -e
}
+# Parse arguments
+COMMAND="$1"
+shift 1
+
+PRODUCT_VERSION=""
+ANDROID="false"
+DESKTOP="false"
+
+for argument in "$@"; do
+ case "$argument" in
+ "--android")
+ ANDROID="true"
+ ;;
+ "--desktop")
+ DESKTOP="true"
+ ;;
+ -*)
+ echo "Unknown option \"$argument\""
+ exit 1
+ ;;
+ *)
+ PRODUCT_VERSION="$argument"
+ ;;
+ esac
+done
+
+
case "$COMMAND" in
"inject")
- inject_version "$@"
+ if [ -z "$PRODUCT_VERSION" ]; then
+ echo "Please give the release version as an argument to this script."
+ echo "For example: '2018.1-beta3' for a beta release, or '2018.6' for a stable one."
+ exit 1
+ fi
+ inject_version "$PRODUCT_VERSION"
;;
"restore-backup")
- restore_backup "$@"
+ restore_backup
;;
"delete-backup")
- delete_backup "$@"
+ delete_backup
;;
*)
echo "Invalid command"