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