test media
[auf_skeleton_django.git] / bin / deploy
... / ...
CommitLineData
1#! /bin/bash
2
3ROOT_PATH=.
4PROJECT_NAME="{{ project_name }}"
5PRODUCTION="production"
6
7################################################################################
8# Prerequis pour le fonctionnement du script
9################################################################################
10if [ ! -e "$ROOT_PATH/README.rst" ]; then
11 echo "KO: Placez vous a la racine du projet."
12 exit -1
13fi
14
15
16################################################################################
17# Selection de la configuration
18################################################################################
19BUILD=$1
20if [ "$BUILD" = "" ]; then
21 BUILD=$PRODUCTION
22fi
23REQUIREMENTS=$ROOT_PATH/requirements/$BUILD.txt
24SETTINGS=$PROJECT_NAME.settings.$BUILD
25
26
27################################################################################
28# VCS
29################################################################################
30if [ "$BUILD" = "$PRODUCTION" ]; then
31 echo "Commandes du VCS"
32 GIT_CLEAN="# On branch master
33nothing to commit (working directory clean)"
34 GIT_STATUS=`git status`
35 if [ "$GIT_STATUS" != "$GIT_CLEAN" ]; then
36 echo "KO: Le depot a des modifications locales"
37 exit -1
38 fi
39fi
40
41
42################################################################################
43# Tests concerant la configuration
44################################################################################
45if [ ! -e "$ROOT_PATH/conf.py" ]; then
46 echo "KO: Il n'y a pas le fichier conf.py a la racine du projet."
47 exit -1
48fi
49
50DIFF=`diff -y conf.py.edit conf.py | grep '<' | colordiff`
51if [ "$DIFF" != "" ]; then
52 echo 'KO: Ajuster le conf.py'
53 diff -y conf.py.edit conf.py | grep '<' | colordiff
54 exit -1
55fi
56
57################################################################################
58# Preparation de l'environnement
59################################################################################
60VENV_PATH=$ROOT_PATH/.virtualenv
61if [ -e "$VENV_PATH" ]; then
62 echo "l'environnement virtuel existe deja."
63else
64 echo "Creation de l'environnement virtuel."
65 virtualenv $VENV_PATH
66 rm -f distribute*.tar.gz
67fi
68
69echo "Installation des dependances."
70echo $VENV_PATH/bin/pip
71$VENV_PATH/bin/pip install -r $REQUIREMENTS
72
73################################################################################
74# Mise en production
75################################################################################
76if [ "$BUILD" != "$PRODUCTION" ]; then
77 exit -1
78fi
79
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
93################################################################################
94# Preparation du projet (en production uniquement)
95################################################################################
96echo "Commandes Django"
97echo "settings: " $SETTINGS
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