#!/bin/bash # Fail on errors. set -e # Make sure .bashrc is sourced . /root/.bashrc # Allow the workdir to be set using an env var. # Useful for CI pipiles which use docker for their build steps # and don't allow that much flexibility to mount volumes SRCDIR=$1 PYPI_URL=$2 PYPI_INDEX_URL=$3 WORKDIR=${SRCDIR:-/src} SPEC_FILE=${4:-*.spec} ADD_DATA_DIRS=$6 python -m pip install --upgrade pip wheel setuptools # # In case the user specified a custom URL for PYPI, then use # that one, instead of the default one. # if [[ "$PYPI_URL" != "https://pypi.python.org/" ]] || \ [[ "$PYPI_INDEX_URL" != "https://pypi.python.org/simple" ]]; then # the funky looking regexp just extracts the hostname, excluding port # to be used as a trusted-host. mkdir -p /wine/drive_c/users/root/pip echo "[global]" > /wine/drive_c/users/root/pip/pip.ini echo "index = $PYPI_URL" >> /wine/drive_c/users/root/pip/pip.ini echo "index-url = $PYPI_INDEX_URL" >> /wine/drive_c/users/root/pip/pip.ini echo "trusted-host = $(echo $PYPI_URL | perl -pe 's|^.*?://(.*?)(:.*?)?/.*$|$1|')" >> /wine/drive_c/users/root/pip/pip.ini echo "Using custom pip.ini: " cat /wine/drive_c/users/root/pip/pip.ini fi cd $WORKDIR if [ -f $5 ]; then pip install -r $5 fi # [ -f $5 ] ADD_DATA="" # ADD_DATA_DIRS is empty or not provided if [ ! -z "$ADD_DATA_DIRS" ]; then # Process every directory in the ADD_DATA_DIRS string for dir in $ADD_DATA_DIRS; do # Add the formatted directory to the output string ADD_DATA+="--add-data \"$SRCDIR/$dir;$dir\" " done # Remove the extra space at the end of the output string ADD_DATA=${ADD_DATA::-1} fi # if [[ "$@" == "" ]]; then pyinstaller --clean -y $ADD_DATA --dist ./dist/windows --workpath /tmp $SPEC_FILE chown -R --reference=. ./dist/windows # else # sh -c "$@" # fi # [[ "$@" == "" ]]