test media
[auf_skeleton_django.git] / bin / deploy
CommitLineData
73d714db
OL
1#! /bin/bash
2
3ROOT_PATH=.
7adc7f71 4PROJECT_NAME="{{ project_name }}"
aeef52dd 5PRODUCTION="production"
7adc7f71 6
aeef52dd
OL
7################################################################################
8# Prerequis pour le fonctionnement du script
9################################################################################
73d714db 10if [ ! -e "$ROOT_PATH/README.rst" ]; then
89f40ab4 11 echo "KO: Placez vous a la racine du projet."
73d714db
OL
12 exit -1
13fi
14
15
aeef52dd
OL
16################################################################################
17# Selection de la configuration
18################################################################################
73d714db
OL
19BUILD=$1
20if [ "$BUILD" = "" ]; then
aeef52dd 21 BUILD=$PRODUCTION
73d714db
OL
22fi
23REQUIREMENTS=$ROOT_PATH/requirements/$BUILD.txt
7adc7f71 24SETTINGS=$PROJECT_NAME.settings.$BUILD
73d714db
OL
25
26
aeef52dd
OL
27################################################################################
28# VCS
29################################################################################
30if [ "$BUILD" = "$PRODUCTION" ]; then
31 echo "Commandes du VCS"
cc46cdfb
OL
32 GIT_CLEAN="# On branch master
33nothing to commit (working directory clean)"
aeef52dd
OL
34 GIT_STATUS=`git status`
35 if [ "$GIT_STATUS" != "$GIT_CLEAN" ]; then
89f40ab4 36 echo "KO: Le depot a des modifications locales"
aeef52dd
OL
37 exit -1
38 fi
39fi
40
41
42################################################################################
43# Tests concerant la configuration
44################################################################################
45if [ ! -e "$ROOT_PATH/conf.py" ]; then
89f40ab4 46 echo "KO: Il n'y a pas le fichier conf.py a la racine du projet."
aeef52dd
OL
47 exit -1
48fi
49
50DIFF=`diff -y conf.py.edit conf.py | grep '<' | colordiff`
51if [ "$DIFF" != "" ]; then
89f40ab4 52 echo 'KO: Ajuster le conf.py'
aeef52dd
OL
53 diff -y conf.py.edit conf.py | grep '<' | colordiff
54 exit -1
55fi
56
57################################################################################
58# Preparation de l'environnement
59################################################################################
73d714db
OL
60VENV_PATH=$ROOT_PATH/.virtualenv
61if [ -e "$VENV_PATH" ]; then
7adc7f71 62 echo "l'environnement virtuel existe deja."
73d714db 63else
7adc7f71 64 echo "Creation de l'environnement virtuel."
e5cceae7 65 virtualenv $VENV_PATH
73d714db
OL
66 rm -f distribute*.tar.gz
67fi
68
7adc7f71 69echo "Installation des dependances."
aeef52dd
OL
70echo $VENV_PATH/bin/pip
71$VENV_PATH/bin/pip install -r $REQUIREMENTS
72
89f40ab4
OL
73################################################################################
74# Mise en production
75################################################################################
aeef52dd
OL
76if [ "$BUILD" != "$PRODUCTION" ]; then
77 exit -1
78fi
73d714db 79
89f40ab4
OL
80echo "test des permissions"
81MEDIA_PATH=$ROOT_PATH/media
82$MEDIA_PERMS=`stat -c %a $MEDIA_PATH`
83if [ "$MEDIA_PERMS" != "2775" ]; then
84 echo "KO: les permissions sur $MEDIA_PATH ne sont pas bonnes (attendu 2775)"
85 exit -1
86fi
87$MEDIA_GRP=`stat -c %G $MEDIA_PATH`
88if [ "$MEDIA_GRP" != "www-data" ]; then
89 echo "KO: le groupe sur $MEDIA_PATH n'est pas bon (attendu www-data)"
90 exit -1
91fi
92
aeef52dd
OL
93################################################################################
94# Preparation du projet (en production uniquement)
95################################################################################
73d714db 96echo "Commandes Django"
aeef52dd 97echo "settings: " $SETTINGS
73d714db
OL
98$ROOT_PATH/bin/django syncdb --settings=$SETTINGS --noinput
99$ROOT_PATH/bin/django migrate --settings=$SETTINGS --noinput
100$ROOT_PATH/bin/django collectstatic --settings=$SETTINGS --noinput