mirror of
https://github.com/ansible/awx.git
synced 2024-10-28 02:25:27 +03:00
51 lines
1.2 KiB
Bash
Executable File
51 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
set -ue
|
|
|
|
requirements_in="$(readlink -f ./requirements.in)"
|
|
requirements="$(readlink -f ./requirements.txt)"
|
|
requirements_git="$(readlink -f ./requirements_git.txt)"
|
|
pip_compile="pip-compile --no-header --quiet -r --allow-unsafe"
|
|
|
|
_cleanup() {
|
|
cd /
|
|
test "${KEEP_TMP:-0}" = 1 || rm -rf "${_tmp}"
|
|
}
|
|
|
|
generate_requirements() {
|
|
venv="`pwd`/venv"
|
|
echo $venv
|
|
/usr/bin/python3.8 -m venv "${venv}"
|
|
# shellcheck disable=SC1090
|
|
source ${venv}/bin/activate
|
|
|
|
${venv}/bin/python3.8 -m pip install -U pip pip-tools
|
|
|
|
${pip_compile} --output-file requirements.txt "${requirements_in}" "${requirements_git}"
|
|
# consider the git requirements for purposes of resolving deps
|
|
# Then remove any git+ lines from requirements.txt
|
|
while IFS= read -r line; do
|
|
sed -i "\!${line%#*}!d" requirements.txt
|
|
done < "${requirements_git}"
|
|
}
|
|
|
|
main() {
|
|
_tmp="$(mktemp -d --suffix .awx-requirements XXXX -p /tmp)"
|
|
trap _cleanup INT TERM EXIT
|
|
|
|
if [ "$1" = "upgrade" ]; then
|
|
pip_compile="${pip_compile} --upgrade"
|
|
fi
|
|
|
|
cp -vf requirements.txt "${_tmp}"
|
|
cd "${_tmp}"
|
|
|
|
generate_requirements
|
|
|
|
cp -vf requirements.txt "${requirements}"
|
|
|
|
_cleanup
|
|
}
|
|
|
|
# set EVAL=1 in case you want to source this script
|
|
test "${EVAL:-0}" -eq "1" || main "${1:-}"
|