#!/usr/bin/env bash # # This script creates a virtualenv named 'env' and installs all pinned # python dependencies before activating the env and running Electrum. # If 'env' already exists, it is activated and Electrum is started # without any installations (unless the pins have changed). # # By default, not all optional dependencies are installed. # E.g. for hardware wallet support, do: # $ source ./env/bin/activate # $ pip install -r contrib/deterministic-build/requirements-hw.txt # $ deactivate set -e cd "$(dirname "$0")" if [ -e ./env/bin/activate ]; then # existing venv source ./env/bin/activate else # create new venv echo "Creating new venv." python3 -m venv env source ./env/bin/activate pip install -r contrib/deterministic-build/requirements.txt pip install -r contrib/deterministic-build/requirements-binaries.txt pip install --no-dependencies -e . echo "Done creating venv." fi # This might be an old directory and our requirements might have changed in the meantime: DEPS_CHANGED_TIME=$(stat --printf %Y contrib/deterministic-build/requirements.txt) if [ "$DEPS_CHANGED_TIME" -gt "$(stat --printf %Y env)" ] ; then echo "Detected changed requirements.txt. Updating dependencies now..." pip install -r contrib/deterministic-build/requirements.txt pip install -r contrib/deterministic-build/requirements-binaries.txt touch env echo "Done updating deps." fi ./run_electrum "$@"