- #!/usr/bin/bash
- # Get latest brave browser Linux 64-bit glibc build from GitHub
- # Tools needed: gpg, 7z, jq/jaq, curl, wget, sha256sum
- set -e
- cd /tmp
- _urlfile="brave-browser-latest.urls"
- _bravespot="/opt/brave" # put wherever you want it
- [ ! -d "${_bravespot}" ] && mkdir -p "${_bravespot}"
- _curversfile="${_bravespot}/current-version.urls"
- curl --silent https://api.github.com/repos/brave/brave-browser/releases/latest | jq --raw-output '.assets[] | select(.name | contains ("linux-amd64.zip")) | .browser_download_url' > "${_urlfile}"
- echo "Latest version URLs:"
- cat "${_urlfile}"
- if [ -f "${_curversfile}" ]; then
- echo "Current version URLs:"
- cat "${_curversfile}"
- cmp --silent "${_urlfile}" "${_curversfile}" && rm -f "${_urlfile}" && echo "No update needed." && exit 0
- fi
- wget --input-file="${_urlfile}" --continue --retry-connrefused
- echo "Sig check:"
- # See https://brave.com/signing-keys/ for all available, we use github release channel
- wget https://brave-browser-downloads.s3.brave.com/keys/github-checksums-release.asc
- gpg --import github-checksums-release.asc
- gpg --verify-files brave-browser-*-linux-amd64.zip.sha256.asc
- echo "Hash check:"
- sha256sum --ignore-missing --check brave-browser-*-linux-amd64.zip.sha256
- rm -rf "${_bravespot}"/* ; sync
- 7z x -o"${_bravespot}" brave-browser-*-linux-amd64.zip ; sync
- # record just updated version for next time
- cp -a "${_urlfile}" "${_curversfile}"
- rm -f "${_urlfile}"
- unset _urlfile _bravespot _curversfile