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