diff --git a/action.yml b/action.yml index d913458..833f962 100644 --- a/action.yml +++ b/action.yml @@ -9,22 +9,32 @@ inputs: description: 'Directory containing source code (optional requirements.txt).' required: True default: src + pypi_url: description: 'Specify a custom URL for PYPI' required: False default: https://pypi.python.org/ + pypi_index_url: description: 'Specify a custom URL for PYPI Index' required: False default: https://pypi.python.org/simple + spec: description: 'Specify a file path for .spec file' required: False default: "" + requirements: description: 'Specify a file path for requirements.txt file' required: False default: "requirements.txt" + + add_data_dirs: + description: 'Specify a list of directories to add to the `--add-data` flag, the dirs must be separated by a blank space' + required: False + default: "" + outputs: output: description: 'The output of PyInstaller' @@ -38,3 +48,4 @@ runs: - ${{ inputs.pypi_index_url }} - ${{ inputs.spec }} - ${{ inputs.requirements }} + - ${{ inputs.add_data_dirs }} diff --git a/entrypoint.sh b/entrypoint.sh index 63e443f..1a4c0c8 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -19,6 +19,8 @@ WORKDIR=${SRCDIR:-/src} SPEC_FILE=${4:-*.spec} +ADD_DATA_DIRS=$6 + python -m pip install --upgrade pip wheel setuptools # @@ -46,9 +48,23 @@ if [ -f $5 ]; then 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 --dist ./dist/windows --workpath /tmp $SPEC_FILE +pyinstaller --clean -y $ADD_DATA --dist ./dist/windows --workpath /tmp $SPEC_FILE chown -R --reference=. ./dist/windows # else # sh -c "$@"