e6f86843df
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
65 lines
2.1 KiB
Bash
65 lines
2.1 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ELECTRUM_VERSION="${1:-4.7.2}"
|
|
|
|
echo ">>> Installing Electrum ${ELECTRUM_VERSION}"
|
|
|
|
WORKDIR="/tmp/electrum"
|
|
mkdir -p "$WORKDIR"
|
|
cd "$WORKDIR"
|
|
|
|
BASE_URL="https://download.electrum.org/${ELECTRUM_VERSION}"
|
|
TARBALL="Electrum-${ELECTRUM_VERSION}.tar.gz"
|
|
SIG_FILE="${TARBALL}.asc"
|
|
|
|
FINGERPRINT_THOMASV='6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6'
|
|
FINGERPRINT_SOMBERNIGHT='0EED CFD5 CAFB 4590 6734 9B23 CA9E EEC4 3DF9 11DC'
|
|
FINGERPRINT_EMZY='9EDA FF80 E080 6596 04F4 A76B 2EBB 056F D847 F8A7'
|
|
|
|
PUB_THOMASV='https://raw.githubusercontent.com/spesmilo/electrum/master/pubkeys/ThomasV.asc'
|
|
PUB_SOMBERNIGHT='https://raw.githubusercontent.com/spesmilo/electrum/master/pubkeys/sombernight_releasekey.asc'
|
|
PUB_EMZY='https://raw.githubusercontent.com/spesmilo/electrum/master/pubkeys/Emzy.asc'
|
|
|
|
echo ">>> Importing signing keys..."
|
|
for pubkey_url in "$PUB_THOMASV" "$PUB_SOMBERNIGHT" "$PUB_EMZY"; do
|
|
wget -q "$pubkey_url"
|
|
done
|
|
for key_file in *.asc; do
|
|
gpg --import "$key_file"
|
|
rm -f "$key_file"
|
|
done
|
|
|
|
echo ">>> Downloading Electrum ${ELECTRUM_VERSION}..."
|
|
wget -q "${BASE_URL}/${TARBALL}"
|
|
wget -q "${BASE_URL}/${SIG_FILE}"
|
|
|
|
echo ">>> Verifying GPG signature..."
|
|
VERIFY_OUTPUT=$(gpg --verify "$SIG_FILE" "$TARBALL" 2>&1 || true)
|
|
echo "$VERIFY_OUTPUT"
|
|
|
|
echo "$VERIFY_OUTPUT" | grep -q "Good signature" \
|
|
|| { echo "ERROR: GPG verification failed — no good signature found" >&2; exit 1; }
|
|
|
|
MATCHED=0
|
|
for fp in "$FINGERPRINT_THOMASV" "$FINGERPRINT_SOMBERNIGHT" "$FINGERPRINT_EMZY"; do
|
|
if echo "$VERIFY_OUTPUT" | grep -qF "$fp"; then
|
|
echo ">>> Fingerprint matched: ${fp}"
|
|
MATCHED=1
|
|
break
|
|
fi
|
|
done
|
|
[ "$MATCHED" -eq 1 ] \
|
|
|| { echo "ERROR: no trusted fingerprint found in verify output" >&2; exit 1; }
|
|
|
|
echo ">>> Creating venv and installing Electrum..."
|
|
python3 -m venv --system-site-packages /opt/electrum
|
|
/opt/electrum/bin/pip install --quiet --use-pep517 "${WORKDIR}/${TARBALL}"
|
|
|
|
ln -sf /opt/electrum/bin/electrum /usr/bin/electrum
|
|
|
|
rm -rf "$WORKDIR"
|
|
|
|
echo ">>> Done: Electrum ${ELECTRUM_VERSION} installed"
|
|
echo ">>> Try: electrum --help"
|