diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2021-03-19 12:02:58 +0100 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2021-03-22 09:33:09 +0100 |
| commit | 8acc25cd0355f6aa1fe09faf55cb4eb8c50f76aa (patch) | |
| tree | 23e2299532a3696aeef65f710dbeea2ae3e38e1a /version-metadata.sh | |
| parent | b91a53282a73f01eff6afd369212e6e900e62ea7 (diff) | |
| download | mullvadvpn-8acc25cd0355f6aa1fe09faf55cb4eb8c50f76aa.tar.xz mullvadvpn-8acc25cd0355f6aa1fe09faf55cb4eb8c50f76aa.zip | |
Make version-metadat.sh cooler
Diffstat (limited to 'version-metadata.sh')
| -rwxr-xr-x | version-metadata.sh | 92 |
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" |
