Files
SimpleBLE/utils/build_py.sh
Kevin Dewald 86642a331d Fixed broken examples, added unit tests. (#123)
* Fixed broken examples, added unit tests.

* Linting

* More fixes

* Fixed PyTest execution

* Fixed PyTest execution

* Fixed PyTest execution

* Fixed uninitialized memory
2022-10-16 09:31:16 -07:00

79 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
# Some portions of this file where inspired from:
# https://medium.com/@Drew_Stokes/bash-argument-parsing-54f3b81a6a8f
# If the current script is running in MacOS, print a warning
if [[ "$OSTYPE" == "darwin"* ]]; then
# Define the realpath function, as MacOs doesn't have it
realpath() {
OURPWD=$PWD
cd "$(dirname "$1")"
LINK=$(readlink "$(basename "$1")")
while [ "$LINK" ]; do
cd "$(dirname "$LINK")"
LINK=$(readlink "$(basename "$1")")
done
REALPATH="$PWD/$(basename "$1")"
cd "$OURPWD"
echo "$REALPATH"
}
fi
# Parse incoming arguments
PARAMS=""
while (( "$#" )); do
case "$1" in
-c|--clean)
FLAG_CLEAN=0
shift
;;
-p|--plain)
FLAG_PLAIN=0
shift
;;
-i|--install)
FLAG_INSTALL=0
shift
;;
-*|--*=) # unsupported flags
echo "Error: Unsupported flag $1" >&2
exit 1
;;
*) # preserve positional arguments
PARAMS="$PARAMS $1"
shift
;;
esac
done
# Set positional arguments in their proper place
eval set -- "$PARAMS"
PROJECT_ROOT=$(realpath $(dirname `realpath $0`)/..)
SOURCE_PATH=$PROJECT_ROOT/simplepyble
BUILD_PATH=$PROJECT_ROOT/build_simplepyble # Note: setup.py will append the project name to the build path
DIST_PATH=$BUILD_PATH/dist
# If FLAG_CLEAN is set, clean the build directory
if [[ ! -z "$FLAG_CLEAN" ]]; then
rm -rf "$BUILD_PATH"_simplepyble
fi
if [[ ! -z "$FLAG_PLAIN" ]]; then
BUILD_PLAIN="--plain"
fi
SETUP_INSTRUCTIONS="build --build-base $BUILD_PATH"
SETUP_INSTRUCTIONS="$SETUP_INSTRUCTIONS egg_info --egg-base $BUILD_PATH"
SETUP_INSTRUCTIONS="$SETUP_INSTRUCTIONS bdist_wheel --dist-dir $DIST_PATH"
cd $SOURCE_PATH
python3 setup.py $SETUP_INSTRUCTIONS $BUILD_PLAIN
cd -
if [[ ! -z "$FLAG_INSTALL" ]]; then
pip3 install $DIST_PATH/*.whl --force-reinstall
fi