summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2020-03-19 10:36:16 +0100
committerLinus Färnstrand <linus@mullvad.net>2020-03-19 10:36:16 +0100
commit583a3fc01505993afc30903ea30b1a217e2f1f82 (patch)
tree206862e992e3cd2d659fb8cfab2b8550cc869806
parent0b3b77c02d867d671b069444bee1ab8ebb3085ab (diff)
parent372b061e1e5cb57ad9315fe56441aacb9df8a34f (diff)
downloadmullvadvpn-583a3fc01505993afc30903ea30b1a217e2f1f82.tar.xz
mullvadvpn-583a3fc01505993afc30903ea30b1a217e2f1f82.zip
Merge branch 'version-metadata-script-cleanup'
-rw-r--r--version-metadata.sh120
-rwxr-xr-xversion_metadata.sh101
2 files changed, 120 insertions, 101 deletions
diff --git a/version-metadata.sh b/version-metadata.sh
new file mode 100644
index 0000000000..f6803ea424
--- /dev/null
+++ b/version-metadata.sh
@@ -0,0 +1,120 @@
+#!/usr/bin/env bash
+#
+# Can inject correctly formatted version strings/numbers in all the various
+# project metadata files. Can also back them up and restore them.
+
+set -eu
+
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+cd "$SCRIPT_DIR"
+
+function inject_version {
+ # Regex that only matches valid Mullvad VPN versions. It also captures
+ # relevant values into capture groups, read out via BASH_REMATCH[x].
+ local VERSION_REGEX="^20([0-9]{2})\.([1-9][0-9]?)(-beta([1-9][0-9]?))?(-dev-[0-9a-f]+)?$"
+ local product_version="$1"
+
+ if [[ ! $product_version =~ $VERSION_REGEX ]]; then
+ echo "Invalid version format. Please specify version as:"
+ echo "<YEAR>.<NUMBER>[-beta<NUMBER>]"
+ return 1
+ fi
+
+ local semver_version=$(echo "$product_version" | sed -Ee 's/($|-.*)/.0\1/g')
+ local semver_major="20${BASH_REMATCH[1]}"
+ local semver_minor=${BASH_REMATCH[2]}
+ local semver_patch="0"
+
+ # Electron GUI
+ cp gui/package.json gui/package.json.bak
+ cp gui/package-lock.json gui/package-lock.json.bak
+ (cd gui/ && npm version "$semver_version" --no-git-tag-version --allow-same-version)
+
+ # Rust crates
+ sed -i.bak -Ee "s/^version = \"[^\"]+\"\$/version = \"$semver_version\"/g" \
+ mullvad-daemon/Cargo.toml \
+ mullvad-cli/Cargo.toml \
+ mullvad-problem-report/Cargo.toml \
+ mullvad-setup/Cargo.toml \
+ talpid-openvpn-plugin/Cargo.toml
+
+ # Windows C++
+ cp dist-assets/windows/version.h dist-assets/windows/version.h.bak
+ cat <<EOF > dist-assets/windows/version.h
+#define MAJOR_VERSION $semver_major
+#define MINOR_VERSION $semver_minor
+#define PATCH_VERSION $semver_patch
+#define PRODUCT_VERSION "$product_version"
+EOF
+
+ # Android
+ if [[ ("$(uname -s)" == "Linux") ]]; then
+ local version_year=$(printf "%02d" "${BASH_REMATCH[1]}")
+ local version_number=$(printf "%02d" "${BASH_REMATCH[2]}")
+ local version_patch="00" # Not used for now.
+ local version_beta=$(printf "%02d" "${BASH_REMATCH[4]:-99}")
+ local android_version_code=${version_year}${version_number}${version_patch}${version_beta}
+
+ cp android/build.gradle android/build.gradle.bak
+ sed -i -Ee "s/versionCode [0-9]+/versionCode $android_version_code/g" \
+ android/build.gradle
+ sed -i -Ee "s/versionName \"[^\"]+\"/versionName \"$product_version\"/g" \
+ android/build.gradle
+ fi
+}
+
+function restore_backup {
+ set +e
+ # Electron GUI
+ mv gui/package.json.bak gui/package.json
+ mv gui/package-lock.json.bak gui/package-lock.json
+ # Rust crates
+ mv mullvad-daemon/Cargo.toml.bak mullvad-daemon/Cargo.toml
+ mv mullvad-cli/Cargo.toml.bak mullvad-cli/Cargo.toml
+ mv mullvad-problem-report/Cargo.toml.bak mullvad-problem-report/Cargo.toml
+ mv mullvad-setup/Cargo.toml.bak mullvad-setup/Cargo.toml
+ mv talpid-openvpn-plugin/Cargo.toml.bak talpid-openvpn-plugin/Cargo.toml
+ # Windows C++
+ mv dist-assets/windows/version.h.bak dist-assets/windows/version.h
+ # Android
+ if [[ ("$(uname -s)" == "Linux") ]]; then
+ mv android/build.gradle.bak android/build.gradle
+ fi
+ set -e
+}
+
+function delete_backup {
+ set +e
+ # Electron GUI
+ rm gui/package.json.bak
+ rm gui/package-lock.json.bak
+ # Rust crates
+ rm mullvad-daemon/Cargo.toml.bak
+ rm mullvad-cli/Cargo.toml.bak
+ rm mullvad-problem-report/Cargo.toml.bak
+ rm mullvad-setup/Cargo.toml.bak
+ rm talpid-openvpn-plugin/Cargo.toml.bak
+ # Windows C++
+ rm dist-assets/windows/version.h.bak
+ # Android
+ if [[ ("$(uname -s)" == "Linux") ]]; then
+ rm android/build.gradle.bak
+ fi
+ set -e
+}
+
+case "$1" in
+ "inject")
+ inject_version "$2"
+ ;;
+ "restore-backup")
+ restore_backup
+ ;;
+ "delete-backup")
+ delete_backup
+ ;;
+ *)
+ echo "Invalid command"
+ exit 1
+ ;;
+esac
diff --git a/version_metadata.sh b/version_metadata.sh
deleted file mode 100755
index 93344bba40..0000000000
--- a/version_metadata.sh
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/usr/bin/env bash
-#
-# Can inject correctly formatted version strings/numbers in all the various
-# project metadata files. Can also back them up and restore them.
-
-set -eu
-
-# Regex that only matches valid Mullvad VPN versions. It also captures
-# relevant values into capture groups, read out via BASH_REMATCH[x].
-VERSION_REGEX="^20([0-9]{2})\.([1-9][0-9]?)(-beta([1-9][0-9]?))?(-dev-[0-9a-f]+)?$"
-
-case "$1" in
- "inject")
- PRODUCT_VERSION=$2
- if [[ ! $PRODUCT_VERSION =~ $VERSION_REGEX ]]; then
- echo "Invalid version format. Please specify version as:"
- echo "<YEAR>.<NUMBER>[-beta<NUMBER>]"
- exit 1
- fi
-
- VERSION_YEAR=$(printf "%02d" ${BASH_REMATCH[1]})
- VERSION_NUMBER=$(printf "%02d" ${BASH_REMATCH[2]})
- VERSION_PATCH="00" # Not used for now.
- VERSION_BETA=$(printf "%02d" ${BASH_REMATCH[4]:-99})
- ANDROID_VERSION_CODE=${VERSION_YEAR}${VERSION_NUMBER}${VERSION_PATCH}${VERSION_BETA}
-
- SEMVER_VERSION=$(echo $PRODUCT_VERSION | sed -Ee 's/($|-.*)/.0\1/g')
- SEMVER_MAJOR="20${BASH_REMATCH[1]}"
- SEMVER_MINOR=${BASH_REMATCH[2]}
- SEMVER_PATCH="0"
-
- # Electron GUI
- cp gui/package.json gui/package.json.bak
- cp gui/package-lock.json gui/package-lock.json.bak
- (cd gui/ && npm version $SEMVER_VERSION --no-git-tag-version --allow-same-version)
-
- # Rust crates
- sed -i.bak -Ee "s/^version = \"[^\"]+\"\$/version = \"$SEMVER_VERSION\"/g" \
- mullvad-daemon/Cargo.toml \
- mullvad-cli/Cargo.toml \
- mullvad-problem-report/Cargo.toml \
- mullvad-setup/Cargo.toml \
- talpid-openvpn-plugin/Cargo.toml
-
- # Windows C++
- cp dist-assets/windows/version.h dist-assets/windows/version.h.bak
- cat <<EOF > dist-assets/windows/version.h
-#define MAJOR_VERSION $SEMVER_MAJOR
-#define MINOR_VERSION $SEMVER_MINOR
-#define PATCH_VERSION $SEMVER_PATCH
-#define PRODUCT_VERSION "$PRODUCT_VERSION"
-EOF
-
- # Android
- if [[ ("$(uname -s)" == "Linux") ]]; then
- cp android/build.gradle android/build.gradle.bak
- sed -i -Ee "s/versionCode [0-9]+/versionCode $ANDROID_VERSION_CODE/g" \
- android/build.gradle
- sed -i -Ee "s/versionName \"[^\"]+\"/versionName \"$PRODUCT_VERSION\"/g" \
- android/build.gradle
- fi
- ;;
- "restore-backup")
- # Electron GUI
- mv gui/package.json.bak gui/package.json || true
- mv gui/package-lock.json.bak gui/package-lock.json || true
- # Rust crates
- mv mullvad-daemon/Cargo.toml.bak mullvad-daemon/Cargo.toml || true
- mv mullvad-cli/Cargo.toml.bak mullvad-cli/Cargo.toml || true
- mv mullvad-problem-report/Cargo.toml.bak mullvad-problem-report/Cargo.toml || true
- mv mullvad-setup/Cargo.toml.bak mullvad-setup/Cargo.toml || true
- mv talpid-openvpn-plugin/Cargo.toml.bak talpid-openvpn-plugin/Cargo.toml || true
- # Windows C++
- mv dist-assets/windows/version.h.bak dist-assets/windows/version.h || true
- # Android
- if [[ ("$(uname -s)" == "Linux") ]]; then
- mv android/build.gradle.bak android/build.gradle || true
- fi
- ;;
- "delete-backup")
- # Electron GUI
- rm gui/package.json.bak || true
- rm gui/package-lock.json.bak || true
- # Rust crates
- rm mullvad-daemon/Cargo.toml.bak || true
- rm mullvad-cli/Cargo.toml.bak || true
- rm mullvad-problem-report/Cargo.toml.bak || true
- rm mullvad-setup/Cargo.toml.bak || true
- rm talpid-openvpn-plugin/Cargo.toml.bak || true
- # Windows C++
- rm dist-assets/windows/version.h.bak || true
- # Android
- if [[ ("$(uname -s)" == "Linux") ]]; then
- rm android/build.gradle.bak || true
- fi
- ;;
- *)
- echo "Invalid command"
- exit 1
- ;;
-esac