diff --git a/setup.cfg b/setup.cfg new file mode 100755 index 0000000..81e7c37 --- /dev/null +++ b/setup.cfg @@ -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 diff --git a/tox.ini b/tox.ini deleted file mode 100644 index c3ac1a4..0000000 --- a/tox.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flake8] -max-line-length = 100 -exclude = migrations, manage.py -max-complexity = 6 -ignore = F405 diff --git a/utility/install_os_dependencies.sh b/utility/install_os_dependencies.sh new file mode 100755 index 0000000..ec9372f --- /dev/null +++ b/utility/install_os_dependencies.sh @@ -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##*/} + 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 diff --git a/utility/install_python_dependencies.sh b/utility/install_python_dependencies.sh new file mode 100755 index 0000000..21bbd5c --- /dev/null +++ b/utility/install_python_dependencies.sh @@ -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 + diff --git a/utility/requirements-jessie.apt b/utility/requirements-jessie.apt new file mode 100755 index 0000000..f602262 --- /dev/null +++ b/utility/requirements-jessie.apt @@ -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 diff --git a/utility/requirements-stretch.apt b/utility/requirements-stretch.apt new file mode 100755 index 0000000..f602262 --- /dev/null +++ b/utility/requirements-stretch.apt @@ -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 diff --git a/utility/requirements-trusty.apt b/utility/requirements-trusty.apt new file mode 100755 index 0000000..db3f01f --- /dev/null +++ b/utility/requirements-trusty.apt @@ -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 + diff --git a/utility/requirements-xenial.apt b/utility/requirements-xenial.apt new file mode 100755 index 0000000..00c3720 --- /dev/null +++ b/utility/requirements-xenial.apt @@ -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 +