#!/bin/bash RED='\033[0;31m' BLUE='\033[0,34m' NC='\033[0m' # No Color function info { printf "\r💬 ${BLUE}INFO:${NC} ${1}\n" } function fail { printf "\r🗯 ${RED}ERROR:${NC} ${1}\n" exit 1 } build_dir=$(dirname "$0") test -n "$build_dir" -a -d "$build_dir" || exit cd $build_dir/../.. export PYTHONHASHSEED=22 VERSION=`git describe --tags` PYTHON_VERSION=3.6.4 info "Installing Python $PYTHON_VERSION" export PATH="~/.pyenv/bin:~/.pyenv/shims:$PATH:~/Library/Python/3.6/bin" if [ -d "~/.pyenv" ]; then pyenv update else curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash > /dev/null 2>&1 fi PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install -s $PYTHON_VERSION && \ pyenv global $PYTHON_VERSION || \ fail "Unable to use Python $PYTHON_VERSION" if ! which pyinstaller > /dev/null; then info "Installing pyinstaller" python3 -m pip install pyinstaller -I --user || fail "Could not install pyinstaller" fi info "Using these versions for building Electrum:" sw_vers python3 --version echo -n "Pyinstaller " pyinstaller --version rm -rf ./dist rm -rf /tmp/electrum-build > /dev/null 2>&1 mkdir /tmp/electrum-build info "Downloading icons and locale..." for repo in icons locale; do git clone https://github.com/spesmilo/electrum-$repo /tmp/electrum-build/electrum-$repo done cp -R /tmp/electrum-build/electrum-locale/locale/ ./lib/locale/ cp /tmp/electrum-build/electrum-icons/icons_rc.py ./gui/qt/ info "Installing requirements..." python3 -m pip install -Ir ./contrib/deterministic-build/requirements.txt --user && \ python3 -m pip install pyqt5 --user || \ fail "Could not install requirements" info "Installing hardware wallet requirements..." python3 -m pip install -Ir ./contrib/deterministic-build/requirements-hw.txt --user || \ fail "Could not install hardware wallet requirements" info "Building Electrum..." python3 setup.py install --user > /dev/null || fail "Could not build Electrum" info "Building binary" pyinstaller --noconfirm --ascii --name $VERSION contrib/build-osx/osx.spec || fail "Could not build binary" info "Creating .DMG" hdiutil create -fs HFS+ -volname "Electrum" -srcfolder dist/Electrum.app dist/electrum-$VERSION.dmg || fail "Could not create .DMG"