add utility folder (os & python deps) + change tox to setup.cfg
This commit is contained in:
parent
95cf14c5df
commit
23214c70fa
|
@ -0,0 +1,8 @@
|
||||||
|
[flake8]
|
||||||
|
max-line-length = 120
|
||||||
|
exclude = .tox,.git,*/migrations/*,*/static/CACHE/*,docs,node_modules
|
||||||
|
max-complexity = 6
|
||||||
|
|
||||||
|
[pep8]
|
||||||
|
max-line-length = 120
|
||||||
|
exclude=.tox,.git,*/migrations/*,*/static/CACHE/*,docs,node_modules
|
5
tox.ini
5
tox.ini
|
@ -1,5 +0,0 @@
|
||||||
[flake8]
|
|
||||||
max-line-length = 100
|
|
||||||
exclude = migrations, manage.py
|
|
||||||
max-complexity = 6
|
|
||||||
ignore = F405
|
|
|
@ -0,0 +1,96 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
WORK_DIR="$(dirname "$0")"
|
||||||
|
DISTRO_NAME=$(lsb_release -sc)
|
||||||
|
OS_REQUIREMENTS_FILENAME="requirements-$DISTRO_NAME.apt"
|
||||||
|
|
||||||
|
cd $WORK_DIR
|
||||||
|
|
||||||
|
# Check if a requirements file exist for the current distribution.
|
||||||
|
if [ ! -r "$OS_REQUIREMENTS_FILENAME" ]; then
|
||||||
|
cat <<-EOF >&2
|
||||||
|
There is no requirements file for your distribution.
|
||||||
|
You can see one of the files listed below to help search the equivalent package in your system:
|
||||||
|
$(find ./ -name "requirements-*.apt" -printf " - %f\n")
|
||||||
|
EOF
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Handle call with wrong command
|
||||||
|
function wrong_command()
|
||||||
|
{
|
||||||
|
echo "${0##*/} - unknown command: '${1}'" >&2
|
||||||
|
usage_message
|
||||||
|
}
|
||||||
|
|
||||||
|
# Print help / script usage
|
||||||
|
function usage_message()
|
||||||
|
{
|
||||||
|
cat <<-EOF
|
||||||
|
Usage: $WORK_DIR/${0##*/} <command>
|
||||||
|
Available commands are:
|
||||||
|
list Print a list of all packages defined on ${OS_REQUIREMENTS_FILENAME} file
|
||||||
|
help Print this help
|
||||||
|
|
||||||
|
Commands that require superuser permission:
|
||||||
|
install Install packages defined on ${OS_REQUIREMENTS_FILENAME} file. Note: This
|
||||||
|
does not upgrade the packages already installed for new versions, even if
|
||||||
|
new version is available in the repository.
|
||||||
|
upgrade Same that install, but upgrade the already installed packages, if new
|
||||||
|
version is available.
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Read the requirements.apt file, and remove comments and blank lines
|
||||||
|
function list_packages(){
|
||||||
|
grep -v "#" "${OS_REQUIREMENTS_FILENAME}" | grep -v "^$";
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_packages()
|
||||||
|
{
|
||||||
|
list_packages | xargs apt-get --no-upgrade install -y;
|
||||||
|
}
|
||||||
|
|
||||||
|
function upgrade_packages()
|
||||||
|
{
|
||||||
|
list_packages | xargs apt-get install -y;
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_or_upgrade()
|
||||||
|
{
|
||||||
|
P=${1}
|
||||||
|
PARAN=${P:-"install"}
|
||||||
|
|
||||||
|
if [[ $EUID -ne 0 ]]; then
|
||||||
|
cat <<-EOF >&2
|
||||||
|
You must run this script with root privilege
|
||||||
|
Please do:
|
||||||
|
sudo $WORK_DIR/${0##*/} $PARAN
|
||||||
|
EOF
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
|
||||||
|
apt-get update
|
||||||
|
|
||||||
|
# Install the basic compilation dependencies and other required libraries of this project
|
||||||
|
if [ "$PARAN" == "install" ]; then
|
||||||
|
install_packages;
|
||||||
|
else
|
||||||
|
upgrade_packages;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# cleaning downloaded packages from apt-get cache
|
||||||
|
apt-get clean
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Handle command argument
|
||||||
|
case "$1" in
|
||||||
|
install) install_or_upgrade;;
|
||||||
|
upgrade) install_or_upgrade "upgrade";;
|
||||||
|
list) list_packages;;
|
||||||
|
help|"") usage_message;;
|
||||||
|
*) wrong_command "$1";;
|
||||||
|
esac
|
|
@ -0,0 +1,44 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
WORK_DIR="$(dirname "$0")"
|
||||||
|
PROJECT_DIR="$(dirname "$WORK_DIR")"
|
||||||
|
|
||||||
|
pip --version >/dev/null 2>&1 || {
|
||||||
|
echo >&2 -e "\npip is required but it's not installed."
|
||||||
|
echo >&2 -e "You can install it by running the following command:\n"
|
||||||
|
echo >&2 "wget https://bootstrap.pypa.io/get-pip.py --output-document=get-pip.py; chmod +x get-pip.py; sudo -H python3 get-pip.py"
|
||||||
|
|
||||||
|
echo >&2 -e "\n"
|
||||||
|
echo >&2 -e "\nFor more information, see pip documentation: https://pip.pypa.io/en/latest/"
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtualenv --version >/dev/null 2>&1 || {
|
||||||
|
echo >&2 -e "\nvirtualenv is required but it's not installed."
|
||||||
|
echo >&2 -e "You can install it by running the following command:\n"
|
||||||
|
echo >&2 "sudo -H pip3 install virtualenv"
|
||||||
|
|
||||||
|
echo >&2 -e "\n"
|
||||||
|
echo >&2 -e "\nFor more information, see virtualenv documentation: https://virtualenv.pypa.io/en/latest/"
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -z "$VIRTUAL_ENV" ]; then
|
||||||
|
echo >&2 -e "\nYou need activate a virtualenv first"
|
||||||
|
echo >&2 -e 'If you do not have a virtualenv created, run the following command to create and automatically activate a new virtualenv named "venv" on current folder:\n'
|
||||||
|
echo >&2 -e "virtualenv venv --python=\`which python3\`"
|
||||||
|
|
||||||
|
echo >&2 -e "\nTo leave/disable the currently active virtualenv, run the following command:\n"
|
||||||
|
echo >&2 "deactivate"
|
||||||
|
echo >&2 -e "\nTo activate the virtualenv again, run the following command:\n"
|
||||||
|
echo >&2 "source venv/bin/activate"
|
||||||
|
echo >&2 -e "\nFor more information, see virtualenv documentation: https://virtualenv.pypa.io/en/latest/"
|
||||||
|
echo >&2 -e "\n"
|
||||||
|
exit 1;
|
||||||
|
else
|
||||||
|
|
||||||
|
pip install -r $PROJECT_DIR/requirements/local.txt
|
||||||
|
pip install -r $PROJECT_DIR/requirements/test.txt
|
||||||
|
pip install -r $PROJECT_DIR/requirements.txt
|
||||||
|
fi
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
##basic build dependencies of various Django apps for Debian Jessie 8.x
|
||||||
|
#build-essential metapackage install: make, gcc, g++,
|
||||||
|
build-essential
|
||||||
|
#required to translate
|
||||||
|
gettext
|
||||||
|
python3-dev
|
||||||
|
|
||||||
|
|
||||||
|
##shared dependencies of:
|
||||||
|
##Pillow, pylibmc
|
||||||
|
zlib1g-dev
|
||||||
|
|
||||||
|
##Postgresql and psycopg2 dependencies
|
||||||
|
libpq-dev
|
||||||
|
|
||||||
|
##Pillow dependencies
|
||||||
|
libtiff5-dev
|
||||||
|
libjpeg62-turbo-dev
|
||||||
|
libfreetype6-dev
|
||||||
|
liblcms2-dev
|
||||||
|
libwebp-dev
|
||||||
|
|
||||||
|
##django-extensions
|
||||||
|
graphviz-dev
|
|
@ -0,0 +1,24 @@
|
||||||
|
##basic build dependencies of various Django apps for Debian Jessie 8.x
|
||||||
|
#build-essential metapackage install: make, gcc, g++,
|
||||||
|
build-essential
|
||||||
|
#required to translate
|
||||||
|
gettext
|
||||||
|
python3-dev
|
||||||
|
|
||||||
|
|
||||||
|
##shared dependencies of:
|
||||||
|
##Pillow, pylibmc
|
||||||
|
zlib1g-dev
|
||||||
|
|
||||||
|
##Postgresql and psycopg2 dependencies
|
||||||
|
libpq-dev
|
||||||
|
|
||||||
|
##Pillow dependencies
|
||||||
|
libtiff5-dev
|
||||||
|
libjpeg62-turbo-dev
|
||||||
|
libfreetype6-dev
|
||||||
|
liblcms2-dev
|
||||||
|
libwebp-dev
|
||||||
|
|
||||||
|
##django-extensions
|
||||||
|
graphviz-dev
|
|
@ -0,0 +1,25 @@
|
||||||
|
##basic build dependencies of various Django apps for Ubuntu Trusty 14.04
|
||||||
|
#build-essential metapackage install: make, gcc, g++,
|
||||||
|
build-essential
|
||||||
|
#required to translate
|
||||||
|
gettext
|
||||||
|
python3-dev
|
||||||
|
|
||||||
|
|
||||||
|
##shared dependencies of:
|
||||||
|
##Pillow, pylibmc
|
||||||
|
zlib1g-dev
|
||||||
|
|
||||||
|
##Postgresql and psycopg2 dependencies
|
||||||
|
libpq-dev
|
||||||
|
|
||||||
|
##Pillow dependencies
|
||||||
|
libtiff4-dev
|
||||||
|
libjpeg8-dev
|
||||||
|
libfreetype6-dev
|
||||||
|
liblcms1-dev
|
||||||
|
libwebp-dev
|
||||||
|
|
||||||
|
##django-extensions
|
||||||
|
graphviz-dev
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
##basic build dependencies of various Django apps for Ubuntu Xenial 16.04
|
||||||
|
#build-essential metapackage install: make, gcc, g++,
|
||||||
|
build-essential
|
||||||
|
#required to translate
|
||||||
|
gettext
|
||||||
|
python3-dev
|
||||||
|
|
||||||
|
|
||||||
|
##shared dependencies of:
|
||||||
|
##Pillow, pylibmc
|
||||||
|
zlib1g-dev
|
||||||
|
|
||||||
|
##Postgresql and psycopg2 dependencies
|
||||||
|
libpq-dev
|
||||||
|
|
||||||
|
##Pillow dependencies
|
||||||
|
libtiff5-dev
|
||||||
|
libjpeg8-dev
|
||||||
|
libfreetype6-dev
|
||||||
|
liblcms2-dev
|
||||||
|
libwebp-dev
|
||||||
|
|
||||||
|
##django-extensions
|
||||||
|
graphviz-dev
|
||||||
|
|
Loading…
Reference in New Issue