summaryrefslogtreecommitdiffhomepage
path: root/desktop/scripts/release/print-package-versions
blob: ee9c8b1f7eb2247121f5fbff62ce5063a2a08670 (plain)
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
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 ../../../ci/linux-repository-builder/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:12 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 $release_channel main\\\" > /etc/apt/sources.list.d/mullvad.list; \
        apt update $silent_stderr $silent_stdout; \
        apt list mullvad-* $silent_stderr | grep 'amd64'\" $silent_stderr"
fi

if [[ $rpm == "true" ]]; then
    if [[ $deb == "true" ]]; then
        log_header "rpm"
    fi

    bash -c "podman run --rm -it fedora:41 sh -c \
        \"dnf install -y 'dnf-command(config-manager)' $silent_stderr $silent_stdout; \
        dnf config-manager addrepo --from-repofile=$repository_server_public_url/rpm/$release_channel/mullvad.repo $silent_stderr; \
        dnf list --refresh mullvad-* $silent_stderr | grep 'x86_64'\" $silent_stderr"
fi