Files
chaos/build.sh
2019-03-03 23:28:46 +05:30

53 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# Abort script at first error, when a command exits with non-zero status
set -e
# Set working directory to location of the script to prevent disasters
cd $(dirname $0)
basedir=$(pwd)
# Create and activate a virtual Python environment
virtualenv -p python3 chaos-build-env
source chaos-build-env/bin/activate
# Install dependencies via Poetry
poetry install
cd chaos
# Create the executable with Pyinstaller
pyinstaller --noconfirm \
--onedir \
--noupx \
--strip \
--log-level=INFO \
chaosd.py
# Get out of the virtual environment
deactivate
# Rearrangement and cleanup of files and directories.
# NOTE: Comment everything beyond this point if you don't want the source
# code to be removed. Check chaos/dist/ in this case for the directory
# containing the executable.
cleanup () {
rm -rf chaos \
chaos-build-env \
chaos.egg-info \
pip-wheel-metadata
mv chaosd chaos
find . -maxdepth 1 -type f ! -name 'build.sh' -exec rm -f {} +
rm build.sh
}
cd dist
mv chaosd ../..
cd ../..
if [[ $(pwd) -ef "$basedir" ]]; then
cleanup
else
exit 1
fi