Skip to content

Commit b1e3daa

Browse files
committed
Update browser download script
1 parent a439f11 commit b1e3daa

File tree

1 file changed

+51
-36
lines changed

1 file changed

+51
-36
lines changed

ci/download-mullvad-browser.sh

+51-36
Original file line numberDiff line numberDiff line change
@@ -1,88 +1,103 @@
11
#!/usr/bin/bash -e
22

3+
4+
# TODO: Uncomment when alpha is to be released
5+
# BROWSER_RELEASES=("alpha" "stable")
36
BROWSER_RELEASES=("alpha")
4-
# Uncomment when stable is available
5-
#BROWSER_RELEASES=("alpha" "stable")
6-
OUTPUT_DIR=/tmp/mullvad-browser-download
7+
TMP_DIR=$(mktemp -q -d )
8+
WORKDIR=/tmp/mullvad-browser-download
9+
NOTIFY_DIR=/tmp/linux-repositories/production
710

811

912
function usage() {
10-
echo "Usage: $0 <notify_file>"
13+
echo "Usage: $0"
1114
echo
1215
echo "This script downloads, verifies, and notifies about Mullvad browser packages."
1316
echo
14-
echo "Arguments:"
15-
echo " <notify_file> The path to the file where notifications of updated packages will be written."
16-
echo
1717
echo "Options:"
18-
echo " --help Show this help message and exit."
18+
echo " -h | --help Show this help message and exit."
1919
exit 1
2020
}
2121

2222

2323
function main() {
24-
# mullvad-browser-alpha.deb
24+
# mullvad-browser-stable.deb
2525
PACKAGE_FILENAME=$1
2626
PACKAGE_URL=https://cdn.mullvad.net/browser/$PACKAGE_FILENAME
2727
SIGNATURE_URL=$PACKAGE_URL.asc
2828

2929
echo "[#] Downloading $PACKAGE_FILENAME"
30-
if ! wget --quiet --show-progress $PACKAGE_URL; then
30+
if ! wget --quiet --show-progress "$PACKAGE_URL"; then
3131
echo "[!] Failed to download $PACKAGE_URL"
3232
exit 1
3333
fi
3434

35-
echo "[#] Downloading $PACKAGE_FILENAME signature"
36-
if ! wget --quiet --show-progress $SIGNATURE_URL; then
35+
echo "[#] Downloading $PACKAGE_FILENAME.asc"
36+
if ! wget --quiet --show-progress "$SIGNATURE_URL"; then
3737
echo "[!] Failed to download $SIGNATURE_URL"
3838
exit 1
3939
fi
4040

4141
echo "[#] Verifying $PACKAGE_FILENAME signature"
42-
if ! gpg --verify $PACKAGE_FILENAME.asc; then
42+
if ! gpg --verify "$PACKAGE_FILENAME".asc; then
4343
echo "[!] Failed to verify signature"
4444
exit 1
4545
fi
46+
rm "$PACKAGE_FILENAME.asc"
4647

4748
# Check if the deb package has changed since last time
4849
# Handle the bootstrap problem by checking if the "output file" even exists and just moving on if it doesn't
49-
if [[ -f $OUTPUT_DIR/$PACKAGE_FILENAME ]] && cmp $PACKAGE_FILENAME $OUTPUT_DIR/$PACKAGE_FILENAME; then
50+
if [[ -f "$WORKDIR/$PACKAGE_FILENAME" ]] && cmp "$PACKAGE_FILENAME" "$PACKAGE_FILENAME"; then
5051
echo "[#] $PACKAGE_FILENAME has not changed"
52+
rm "$PACKAGE_FILENAME"
5153
return
5254
fi
53-
echo "[#] $PACKAGE_FILENAME has changed"
5455

55-
echo "[#] Moving $PACKAGE_FILENAME file to $OUTPUT_DIR"
56-
mv $PACKAGE_FILENAME $OUTPUT_DIR/
57-
58-
echo "[#] Notifying $NOTIFY_FILE"
59-
echo "$OUTPUT_DIR/$PACKAGE_FILENAME" >> $NOTIFY_FILE
56+
echo "[#] $PACKAGE_FILENAME has changed"
57+
ln "$PACKAGE_FILENAME" $WORKDIR/
6058
}
6159

62-
if [[ $# == 0 ]] || [[ $1 == "--help" ]]; then
60+
61+
if [[ $1 == "-h" ]] || [[ $1 == "--help" ]]; then
6362
usage
6463
fi
6564

6665

67-
NOTIFY_FILE=$(readlink -f $1)
68-
if [[ -z $NOTIFY_FILE ]]; then
69-
echo "Please provide the output path as the first argument"
66+
if ! [[ -d $NOTIFY_DIR ]]; then
67+
echo "[!] $NOTIFY_DIR does not exist"
7068
exit 1
71-
fi
69+
fi
70+
7271

73-
if ! [[ -d $OUTPUT_DIR ]]; then
74-
echo "[#] Creating $OUTPUT_DIR"
75-
mkdir -p $OUTPUT_DIR
72+
if ! [[ -d $WORKDIR ]]; then
73+
echo "[#] Creating $WORKDIR"
74+
mkdir -p $WORKDIR
7675
fi
7776

78-
# Prepare working area
79-
WORKDIR=$(mktemp -q -d )
80-
pushd $WORKDIR > /dev/null
81-
trap "{ rm -r $WORKDIR; }" EXIT
8277

83-
for release in ${BROWSER_RELEASES[@]}; do
84-
main mullvad-browser-$release.deb
85-
# Uncomment when rpm is available
86-
#main mullvad-browser-$release.rpm
78+
pushd "$TMP_DIR" > /dev/null
79+
80+
81+
echo "[#] Configured releases are: ${BROWSER_RELEASES[*]}"
82+
for release in "${BROWSER_RELEASES[@]}"; do
83+
main "mullvad-browser-$release.deb"
84+
# TODO: Uncomment when rpm is available
85+
# main "mullvad-browser-$release.rpm"
8786
done
8887

88+
89+
if [[ -z "$(ls -A "$TMP_DIR")" ]]; then
90+
echo "[#] No new browser build(s) exist"
91+
exit
92+
fi
93+
94+
95+
echo "[#] New browser build(s) exist"
96+
# TODO: Uncomment when we release both alpha and stable
97+
# for DIR in "$NOTIFY_DIR"/*; do
98+
for DIR in $NOTIFY_DIR/stable; do
99+
NOTIFY_FILE=$DIR/browser.src
100+
echo "[#] Notifying $NOTIFY_FILE"
101+
echo "Writing $TMP_DIR to $NOTIFY_FILE"
102+
echo "$TMP_DIR" > "$NOTIFY_FILE"
103+
done

0 commit comments

Comments
 (0)