summaryrefslogtreecommitdiffhomepage
path: root/desktop/scripts
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2024-09-26 16:53:48 +0200
committerOskar <oskar@mullvad.net>2025-02-04 13:34:19 +0100
commitc1cbce2dac026e0f5cdbdf5333f1f32fe3bde8e7 (patch)
tree64c68bca4fcfd6253a823f0d93995adaae5569b0 /desktop/scripts
parentb9b74b3bef5d47f526fbe0bd13b34e2c28bd66a2 (diff)
downloadmullvadvpn-c1cbce2dac026e0f5cdbdf5333f1f32fe3bde8e7.tar.xz
mullvadvpn-c1cbce2dac026e0f5cdbdf5333f1f32fe3bde8e7.zip
Add helper script to print current version of packages in repos
Helps debug repo issues and verify repo integrity during release etc.
Diffstat (limited to 'desktop/scripts')
-rwxr-xr-xdesktop/scripts/print-package-versions.sh93
1 files changed, 93 insertions, 0 deletions
diff --git a/desktop/scripts/print-package-versions.sh b/desktop/scripts/print-package-versions.sh
new file mode 100755
index 0000000000..9d255f5fac
--- /dev/null
+++ b/desktop/scripts/print-package-versions.sh
@@ -0,0 +1,93 @@
+#!/usr/bin/env bash
+#
+# Prints the versions of the packages currently in our Linux repositories.
+
+set -eu
+
+function usage() {
+ echo "Usage: $0 [options]"
+ echo ""
+ echo "Example usage: $0 --rpm --production --beta"
+ echo
+ echo "Options:"
+ echo " -h | --help Show this help message and exit."
+ echo " -v | --verbose Print stderr of all commands."
+ echo " -vv Print both stderr and stdout of all commands."
+ echo " --deb Check version of deb package (default)."
+ echo " --rpm Check version of rpm package (default)."
+ echo " --production | --prod Check packages in production repositories (default)."
+ echo " --staging Check packages in staging repositories."
+ echo " --development | --dev Check packages in development repositories."
+ echo " --stable Check packages in stable repositories (default)."
+ echo " --beta Check packages in beta repositories."
+ exit 1
+}
+
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+cd "$SCRIPT_DIR"
+
+# shellcheck source=ci/linux-repository-builder/build-linux-repositories-config.sh
+source build-linux-repositories-config.sh
+# shellcheck source=scripts/utils/log
+source ../../scripts/utils/log
+
+deb="false"
+rpm="false"
+repository_server_public_url="$PRODUCTION_LINUX_REPOSITORY_PUBLIC_URL"
+release_channel="stable"
+
+silent_stdout=">/dev/null"
+silent_stderr="2>/dev/null"
+
+while [[ "$#" -gt 0 ]]; do
+ case $1 in
+ -h|--help) usage;;
+ -v|--verbose) silent_stderr="" ;;
+ -vv)
+ silent_stdout=""
+ silent_stderr=""
+ ;;
+ --deb) deb="true";;
+ --rpm) rpm="true";;
+ --production|--prod) repository_server_public_url="$PRODUCTION_LINUX_REPOSITORY_PUBLIC_URL";;
+ --staging) repository_server_public_url="$STAGING_LINUX_REPOSITORY_PUBLIC_URL";;
+ --development|--dev) repository_server_public_url="$DEV_LINUX_REPOSITORY_PUBLIC_URL";;
+ --stable) release_channel="stable";;
+ --beta) release_channel="beta";;
+ *)
+ log_error "Unknown parameter: $1\n"
+ usage
+ ;;
+ esac
+ shift
+done
+
+if [[ $deb == "false" && $rpm == "false" ]]; then
+ deb="true";
+ rpm="true";
+fi
+
+if [[ $deb == "true" ]]; then
+ if [[ $rpm == "true" ]]; then
+ log_header "deb"
+ fi
+
+ bash -c " podman run --rm -it debian:latest sh -c \
+ \"apt update $silent_stderr $silent_stdout; \
+ apt install -y curl $silent_stderr $silent_stdout; \
+ curl -fsSLo /usr/share/keyrings/mullvad-keyring.asc $repository_server_public_url/deb/mullvad-keyring.asc; \
+ echo \\\"deb [signed-by=/usr/share/keyrings/mullvad-keyring.asc arch=amd64] $repository_server_public_url/deb/$release_channel bookworm main\\\" > /etc/apt/sources.list.d/mullvad.list; \
+ apt update $silent_stderr $silent_stdout; \
+ apt list mullvad-vpn mullvad-browser $silent_stderr | grep -E 'mullvad-(vpn|browser)'\" $silent_stderr"
+fi
+
+if [[ $rpm == "true" ]]; then
+ if [[ $deb == "true" ]]; then
+ log_header "rpm"
+ fi
+
+ bash -c "podman run --rm -it fedora:latest sh -c \
+ \"dnf install -y 'dnf-command(config-manager)' $silent_stdout; \
+ dnf config-manager --add-repo $repository_server_public_url/rpm/$release_channel/mullvad.repo $silent_stdout; \
+ dnf list --refresh mullvad-vpn mullvad-browser $silent_stderr | grep -E 'mullvad-(vpn|browser)'\" $silent_stderr"
+fi