Files
concrete/script/make_utils/licenses.sh
Arthur Meyre 760a0af39b chore: add torch as a proper requirement for the package
- we forgot to do that and it seems poetry chose versions of torch for all
OSes so should be good
- removed torchvision as we apparently never really used it
- make it work on linux and macOS
2021-12-15 17:59:16 +01:00

127 lines
3.2 KiB
Bash
Executable File

#!/bin/bash
set -e
BASENAME="licenses"
LICENSE_DIRECTORY="licenses"
CHECK=0
DIFF_TOOL="diff --ignore-all-space --ignore-tab-expansion --ignore-space-change --ignore-all-space --ignore-blank-lines --strip-trailing-cr"
TMP_VENV_PATH="/tmp/tmp_venv"
DO_USER_LICENSES=1
# Dev licences are not done, but could be re-enabled
DO_DEV_LICENSES=0
OUTPUT_DIRECTORY="${LICENSE_DIRECTORY}"
while [ -n "$1" ]
do
case "$1" in
"--check" )
CHECK=1
OUTPUT_DIRECTORY=$(mktemp -d)
;;
*)
echo "Unknown param : $1"
exit 1
;;
esac
shift
done
UNAME=$(uname)
if [ "$UNAME" == "Darwin" ]
then
OS=mac
elif [ "$UNAME" == "Linux" ]
then
OS=linux
else
echo "Problem with OS"
exit 255
fi
if [ $DO_USER_LICENSES -eq 1 ]
then
#Licenses for user (install in a temporary venv)
echo "Doing licenses for user"
FILENAME="${BASENAME}_${OS}_user.txt"
LICENSES_FILENAME="${LICENSE_DIRECTORY}/${FILENAME}"
NEW_LICENSES_FILENAME="${OUTPUT_DIRECTORY}/${FILENAME}"
rm -rf $TMP_VENV_PATH/tmp_venv
python3 -m venv $TMP_VENV_PATH/tmp_venv
# SC1090: Can't follow non-constant source. Use a directive to specify location.
# shellcheck disable=SC1090,SC1091
source $TMP_VENV_PATH/tmp_venv/bin/activate
python -m pip install -U pip wheel
python -m pip install -U --force-reinstall setuptools
poetry install --no-dev
python -m pip install pip-licenses
pip-licenses | grep -v "pkg\-resources\|concretefhe" | tee "${NEW_LICENSES_FILENAME}"
# Remove trailing whitespaces
if [ "$UNAME" == "Darwin" ]
then
sed -i "" 's/[t ]*$//g' "${NEW_LICENSES_FILENAME}"
else
sed -i 's/[t ]*$//g' "${NEW_LICENSES_FILENAME}"
fi
deactivate
if [ $CHECK -eq 1 ]
then
echo "$DIFF_TOOL $LICENSES_FILENAME ${NEW_LICENSES_FILENAME}"
$DIFF_TOOL "$LICENSES_FILENAME" "${NEW_LICENSES_FILENAME}"
echo "Success: no update in $LICENSES_FILENAME"
fi
fi
if [ $DO_DEV_LICENSES -eq 1 ]
then
# Licenses for developer (install in a temporary venv)
echo "Doing licenses for developper"
FILENAME="${BASENAME}_${OS}_dev.txt"
LICENSES_FILENAME="${LICENSE_DIRECTORY}/${FILENAME}"
NEW_LICENSES_FILENAME="${OUTPUT_DIRECTORY}/${FILENAME}"
rm -rf $TMP_VENV_PATH/tmp_venv
python3 -m venv $TMP_VENV_PATH/tmp_venv
# SC1090: Can't follow non-constant source. Use a directive to specify location.
# shellcheck disable=SC1090,SC1091
source $TMP_VENV_PATH/tmp_venv/bin/activate
make setup_env
pip-licenses | grep -v "pkg\-resources\|concretefhe" | tee "${NEW_LICENSES_FILENAME}"
# Remove trailing whitespaces
if [ "$UNAME" == "Darwin" ]
then
sed -i "" 's/[t ]*$//g' "${NEW_LICENSES_FILENAME}"
else
sed -i 's/[t ]*$//g' "${NEW_LICENSES_FILENAME}"
fi
deactivate
if [ $CHECK -eq 1 ]
then
echo "$DIFF_TOOL $LICENSES_FILENAME ${NEW_LICENSES_FILENAME}"
$DIFF_TOOL "$LICENSES_FILENAME" "${NEW_LICENSES_FILENAME}"
echo "Success: no update in $LICENSES_FILENAME"
fi
fi
rm -f ${LICENSE_DIRECTORY}/licenses_*.txt.tmp
rm -rf $TMP_VENV_PATH/tmp_venv
echo "End of license script"