Commit cac72304 authored by root's avatar root

init app

parents
scripts/repaniers_vars
This diff is collapsed.
<public:component>
<public:attach event="onpropertychange" onevent="doFix()" />
<script type="text/javascript">
// IE5.5+ PNG Alpha Fix v1.0RC4
// (c) 2004-2005 Angus Turnbull http://www.twinhelix.com
// This is licensed under the CC-GNU LGPL, version 2.1 or later.
// For details, see: http://creativecommons.org/licenses/LGPL/2.1/
// This must be a path to a blank image. That's all the configuration you need.
if (typeof blankImg == 'undefined') var blankImg = 'blank.gif';
var f = 'DXImageTransform.Microsoft.AlphaImageLoader';
function filt(s, m)
{
if (filters[f])
{
filters[f].enabled = s ? true : false;
if (s) with (filters[f]) { src = s; sizingMethod = m }
}
else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")';
}
function doFix()
{
// Assume IE7 is OK.
if (!/MSIE (5\.5|6\.)/.test(navigator.userAgent) ||
(event && !/(background|src)/.test(event.propertyName))) return;
var bgImg = currentStyle.backgroundImage || style.backgroundImage;
if (tagName == 'IMG')
{
if ((/\.png$/i).test(src))
{
if (currentStyle.width == 'auto' && currentStyle.height == 'auto')
style.width = offsetWidth + 'px';
filt(src, 'scale');
src = blankImg;
}
else if (src.indexOf(blankImg) < 0) filt();
}
else if (bgImg && bgImg != 'none')
{
if (bgImg.match(/^url[("']+(.*\.png)[)"']+$/i))
{
var s = RegExp.$1;
if (currentStyle.width == 'auto' && currentStyle.height == 'auto')
style.width = offsetWidth + 'px';
style.backgroundImage = 'none';
filt(s, 'crop');
// IE link fix.
for (var n = 0; n < childNodes.length; n++)
if (childNodes[n].style) childNodes[n].style.position = 'relative';
}
else filt();
}
}
doFix();
</script>
</public:component>
\ No newline at end of file
images/top.png

417 Bytes

This diff is collapsed.
function opentab(evt, id) {
// Declare all variables
var i, tabcontent, tablinks;
// Get all elements with class="tabcontent" and hide them
tabcontent = document.getElementsByClassName("tabcontent");
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
// Get all elements with class="tablinks" and remove the class "active"
tablinks = document.getElementsByClassName("tablinks");
for (i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
// Show the current tab, and add an "active" class to the button that opened the tab
document.getElementById(id).style.display = "block";
evt.currentTarget.className += " active";
}
document.addEventListener('DOMContentLoaded', function() {
var form = document.getElementsByTagName('form')[0];
var email = document.getElementById('rep_coord_mail');
var error = document.querySelector('.error');
form.addEventListener("submit", function (event) {
var txt = "c"
if (confirm("Es-tu sur?")) {
document.getElementById("overlay").style.display = "block";
} else {
event.preventDefault();
}
}, false);
var select_update=document.getElementById('rep_select_update');
select_update.addEventListener("click", function() {
if (this.selectedIndex >= 0) {
document.getElementById('submit_update').disabled=false
}
}, false);
var select_restore=document.getElementById('rep_select_restore');
select_restore.addEventListener("click", function() {
if (this.selectedIndex >= 0) {
document.getElementById('submit_restore').disabled=false
}
}, false);
var select_delete=document.getElementById('rep_select_del');
select_delete.addEventListener("click", function() {
if (this.selectedIndex >= 0) {
document.getElementById('submit_delete').disabled=false
}
}, false);
}, false);
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('3(7.X){7["R"+a]=a;7["z"+a]=6(){7["R"+a](7.1k)};7.X("1e",7["z"+a])}E{7.19("z",a,15)}2 j=H V();6 a(){2 e=q.1d("1a");3(e){o(e,"P");2 N=B(q,"*","14");3((e.12<=10)||(N=="")){c(e,"P",d)}}4=B(q,"*","1n");k(i=0;i<4.b;i++){3(4[i].F=="1g"||4[i].F=="1f"||4[i].F=="1c"){4[i].1b=6(){r();c(v.5.5,"f",d)};4[i].O=6(){r();c(v.5.5,"f",d)};j.D(j.b,0,4[i])}E{4[i].O=6(){r();c(v.5.5,"f",d)};4[i].18=6(){o(v.5.5,"f")}}}2 C=17.16.13();2 A=q.M("11");3(C.K("J")+1){c(A[0],"J",d)}3(C.K("I")+1){c(A[0],"I",d)}}6 r(){k(2 i=0;i<j.b;i++){o(j[i].5.5,"f")}}6 B(m,y,w){2 x=(y=="*"&&m.Y)?m.Y:m.M(y);2 G=H V();w=w.1m(/\\-/g,"\\\\-");2 L=H 1l("(^|\\\\s)"+w+"(\\\\s|$)");2 n;k(2 i=0;i<x.b;i++){n=x[i];3(L.1j(n.8)){G.1i(n)}}1h(G)}6 o(p,T){3(p.8){2 h=p.8.Z(" ");2 U=T.t();k(2 i=0;i<h.b;i++){3(h[i].t()==U){h.D(i,1);i--}}p.8=h.S(" ")}}6 c(l,u,Q){3(l.8){2 9=l.8.Z(" ");3(Q){2 W=u.t();k(2 i=0;i<9.b;i++){3(9[i].t()==W){9.D(i,1);i--}}}9[9.b]=u;l.8=9.S(" ")}E{l.8=u}}',62,86,'||var|if|elements|parentNode|function|window|className|_16|initialize|length|addClassName|true|_1|highlighted||_10||el_array|for|_13|_6|_c|removeClassName|_e|document|safari_reset||toUpperCase|_14|this|_8|_9|_7|load|_4|getElementsByClassName|_3|splice|else|type|_a|new|firefox|safari|indexOf|_b|getElementsByTagName|_2|onfocus|no_guidelines|_15|event_load|join|_f|_11|Array|_17|attachEvent|all|split|450|body|offsetWidth|toLowerCase|guidelines|false|userAgent|navigator|onblur|addEventListener|main_body|onclick|file|getElementById|onload|radio|checkbox|return|push|test|event|RegExp|replace|element'.split('|'),0,{}))
\ No newline at end of file
This diff is collapsed.
#!/bin/bash
chemin_scripts=$(readlink -f $0)
dossier_scripts=$(echo $chemin_scripts | sed "s/\/repaniers_delete.sh$//g")
# Recuperation des variables
source $dossier_scripts"/repaniers_vars"
# Check des params
env_encours=$1
projet=$2
if [ "$#" -ne 2 ]; then
echo $css_error"Erreur: Mauvais nombre de param&egrave; pass&eacute; &agrave; la fonction"$css_fin
exit 1
fi
if [[ ! -d $home/$env_encours/$projet || ! -f $home/$env_encours/$projet/manage.py ]]; then
echo $css_error"Erreur: Ce n'est pas une instance valide"$css_fin
exit 1
fi
db=$(cat $home/$env_encours/$projet/$projet/$projet.ini | grep DJANGO_SETTINGS_DATABASE_NAME | cut -d "=" -f 2)
jour=$(date +'%y-%m-%d_%Hh%M');
bck_file='bck_'$env_encours"_"$db'_'$jour'.pgdump';
# Affichage d'infos
echo $css_etape"INFOS"$css_fin
echo "<pre>"
echo "Instance: $projet"
echo "Dossier de l'environnement actuel: $env_encours"
echo "Base de donn&eacute;es: $db"
echo "</pre>"
## On backup la DB
## ---------------
echo $css_etape"BACKUP DB"$css_fin
echo "<pre>"
PGPASSWORD="$db_passwd" /usr/bin/pg_dump -h localhost -U $db_user -d $db -n public --format=custom -f $backup_dir/$bck_file;
cd $backup_dir && gzip $bck_file
echo "</pre>"
## On efface la Db
## ------------------------------
echo $css_etape"SUPPRESSION DB"$css_fin
echo "<pre>"
# Pour etre sur que la BD ne soit pas lockee
service postgresql restart
sudo -u postgres bash -c "dropdb $db"
echo "</pre>"
## Backup du dossier de l'instance (et suppression du dossier)
## Pour chaque instance trouvee
## -----------------------------------------------------------
echo $css_etape"BACKUP(S) ET SUPPRESSION(S) DU(DES) DOSSIER(S) DU PROJET"$css_fin
echo "<pre>"
arr_v_projets=$(find $home/prd_*/$projet -maxdepth 0 -type d \( -exec test -f '{}'/manage.py \; \) -printf "%T@ %p\n"| sort -nr | cut -d " " -f 2 | cut -d "/" -f 4,5)
for instance in $arr_v_projets;
do
venv=$(echo $instance | cut -d '/' -f 1)
vinstance=$(echo $instance | cut -d '/' -f 2)
echo " * backup de "$venv/$vinstance
bck_projet='bck_'$venv"_"$vinstance'_'$jour'.tar.gz';
tar -czf $backup_dir/$bck_projet $home/$venv/$vinstance
echo " * suppression de "$venv/$vinstance
rm -R $home/$venv/$vinstance
## Suppression de l'environnement s'il n'y a plus de projet dedans
## ---------------------------------------------------------------
instances=$(find $home/$venv/* -maxdepth 0 -type d \( -exec test -f '{}'/manage.py \; \) -printf "%T@ %p\n");
if [ -z "$instances" ]; then
echo " * l'environnement '"$venv"' a &eacute;t&eacute; supprim&eacute; car plus d'instance dedans"
rm -R $home/$venv/
fi
echo "----"
done
echo "</pre>"
## Efface le cache
## ---------------
echo $css_etape"EFFACE LE CACHE"$css_fin
echo "<pre>"
rm -rf /var/tmp/django-cache/$ndd/
chown www-data:repanier /var/tmp/django-cache
chmod 0770 /var/tmp/django-cache
echo "</pre>"
## Suppression Vhost de nginx & Uwsgi
## ----------------------------
echo $css_etape"SUPPRESSION VHOST NGINX"$css_fin
echo "<pre>"
rm /etc/nginx/sites-enabled/$projet.gasap.be
rm /etc/nginx/sites-available/$projet.gasap.be
rm /etc/nginx/sites-available/$projet.gasap.be_http
/usr/sbin/nginx -t && /usr/sbin/service nginx reload
echo "</pre>"
echo $css_etape"SUPPRESSION FICHIER UWSGI"$css_fin
echo "<pre>"
rm /etc/uwsgi/apps-enabled/$projet.ini
rm /etc/uwsgi/apps-available/$projet.ini
/usr/sbin/service uwsgi reload
echo "</pre>"
echo "<hr />"
echo $css_etape"FINI"$css_fin
exit 0
#!/bin/bash
chemin_scripts=$(readlink -f $0)
dossier_scripts=$(echo $chemin_scripts | sed "s/\/repaniers_get_infos.sh$//g")
# Recuperation des variables
source $dossier_scripts"/repaniers_vars"
declare -a arr_projets
declare -a arr_projets_sel
declare -a arr_projets_sel2
in_array() {
local haystack=${1}[@]
local needle=${2}
for i in ${!haystack}; do
if [[ ${i} == ${needle} ]]; then
return 0
fi
done
return 1
}
arr_venv=$(find $home/prd_* -maxdepth 0 -type d \( -exec test -f '{}'/COMMIT \; \) -printf "%p\n"| sort -t _ -k 2 -r | cut -d " " -f 2 | cut -d "/" -f 4)
for venv in $arr_venv;
do
commit=$(cat $home/$venv/COMMIT)
arr_v_projets=$(find $home/$venv/* -maxdepth 0 -type d \( -exec test -f '{}'/manage.py \; \) -printf "%T@ %p\n"| sort -nr | cut -d " " -f 2 | cut -d "/" -f 5)
for projet in $arr_v_projets;
do
ndd=$(cat /etc/nginx/sites-available/$projet.gasap.be | grep server_name | head -1 | cut -d " " -f 2 | cut -d ';' -f 1)
if in_array arr_projets_sel "$projet"; then
if ! in_array arr_projets_sel2 "$projet"; then
arr_projets[${#arr_projets[@]}]=$venv"|"$commit"|"$projet"|restore_ok|"$ndd
else
arr_projets[${#arr_projets[@]}]=$venv"|"$commit"|"$projet"|restore_disabled|"$ndd
fi
arr_projets_sel2[${#arr_projets_sel2[@]}]=$projet
else
arr_projets[${#arr_projets[@]}]=$venv"|"$commit"|"$projet"|update|"$ndd
fi
arr_projets_sel[${#arr_projets_sel[@]}]=$projet
done
done
echo ${arr_projets[@]}
exit 0
#!/bin/bash
chemin_scripts=$(readlink -f $0)
dossier_scripts=$(echo $chemin_scripts | sed "s/\/repaniers_restore.sh$//g")
# Recuperation des variables
source $dossier_scripts"/repaniers_vars"
# Check des params
env_restore=$1
projet=$2
if [ "$#" -ne 2 ]; then
echo $css_error"Erreur: Mauvais nombre de param&egrave; pass&eacute; &agrave; la fonction"$css_fin
exit 1
fi
if [[ ! -d $home/$env_restore/$projet && ! -f $home/$env_restore/$projet/manage.py ]]; then
echo $css_error"Erreur: Ce n'est pas une instance valide"$css_fin
exit 1
fi
env_encours=$(find /home/repanier/prd_*/$projet -maxdepth 0 -type d \( -exec test -f '{}'/manage.py \; \) -printf "%p\n"| sort -t _ -k 2 -r | cut -d " " -f 2 | cut -d "/" -f 4 | head -1)
ndd=$(cat /etc/nginx/sites-available/$projet.gasap.be | grep server_name | head -1 | cut -d " " -f 2 | cut -d ';' -f 1)
db=$(cat $home/$env_encours/$projet/$projet/$projet.ini | grep DJANGO_SETTINGS_DATABASE_NAME | cut -d "=" -f 2)
jour=$(date +'%y-%m-%d_%Hh%M');
bck_file='bck_'$env_encours"_"$db'_'$jour'.pgdump';
search_pattern=$backup_dir"/bck_"$env_restore"_"$db"_*"
restore_file=$(find $search_pattern -type f | sort -r | head -1 | sed 's/\.gz$//g')
# Affichage d'infos
echo $css_etape"INFOS"$css_fin
echo "<pre>"
echo "Instance: $projet"
echo "Nom de domaine: $ndd"
echo "Dossier de l'environnement actuel: $env_encours"
echo "Dossier de l'ancien environnement: $env_restore"
echo "Base de donn&eacute;es: $db"
echo "Fichier de la BD &agrave; restaurer: $restore_file"
echo "</pre>"
## On backup la DB
## ---------------
echo $css_etape"BACKUP DB"$css_fin
echo "<pre>"
PGPASSWORD="$db_passwd" /usr/bin/pg_dump -h localhost -U $db_user -d $db -n public --format=custom -f $backup_dir/$bck_file;
cd $backup_dir && gzip $bck_file
echo "</pre>"
## On efface et recree la Db vide
## ------------------------------
echo $css_etape"SUPPRESSION DB"$css_fin
echo "<pre>"
# Pour etre sur que la BD ne soit pas lockee
service postgresql restart
sudo -u postgres bash -c "dropdb $db"
echo "</pre>"
echo $css_etape"CREATION DB"$css_fin
echo "<pre>"
sudo -u postgres bash -c "createdb -E UTF8 --lc-collate=fr_BE.UTF-8 --lc-ctype=fr_BE.UTF-8 -O repanier -T template0 $db"
echo "</pre>"
## Importe le backup de la db
## --------------------------
echo $css_etape"IMPORT ANCIENNE DB"$css_fin
echo "<pre>"
cd $backup_dir && gzip -d $restore_file".gz"
PGPASSWORD="$db_passwd" /usr/bin/pg_restore -d $db -h localhost -U $db_user -1 $restore_file;
cd $backup_dir && gzip $restore_file
echo "</pre>"
## Efface le cache
## ---------------
echo $css_etape"EFFACE LE CACHE"$css_fin
echo "<pre>"
rm -rf /var/tmp/django-cache/$ndd/
chown www-data:repanier /var/tmp/django-cache
chmod 0770 /var/tmp/django-cache
echo "</pre>"
## Compilation du projet
## ---------------------
echo $css_etape"COLLECTSTATIC"$css_fin
echo "<pre>"
sudo -u repanier bash -c "cd $home/$nouvel_env; source bin/activate; cd $projet; python manage.py collectstatic;"
echo "</pre>"
echo $css_etape"MAKEMIGRATIONS"$css_fin
echo "<pre>"
sudo -u repanier bash -c "cd $home/$nouvel_env; source bin/activate; cd $projet; python manage.py makemigrations repanier;"
echo "</pre>"
echo $css_etape"MIGRATE"$css_fin
echo "<pre>"
sudo -u repanier bash -c "cd $home/$nouvel_env; source bin/activate; cd $projet; python manage.py migrate;"
echo "</pre>"
## Efface le cache
## ---------------
echo $css_etape"EFFACE LE CACHE"$css_fin
echo "<pre>"
rm -rf /var/tmp/django-cache/$ndd/
chown www-data:repanier /var/tmp/django-cache
chmod 0770 /var/tmp/django-cache
echo "</pre>"
## MÃ du Vhost de nginx & Wsgi
## ----------------------------
echo $css_etape"MISE &Agrave; JOUR VHOST NGINX"$css_fin
echo "<pre>"
sed -i -e "s/$env_encours/$env_restore/g" /etc/nginx/sites-available/$projet.gasap.be
echo "</pre>"
echo $css_etape"MISE &Agrave; JOUR FICHIER UWSGI"$css_fin
echo "<pre>"
sed -i -e "s/$env_encours/$env_restore/g" /etc/uwsgi/apps-available/$projet.ini
echo "</pre>"
echo $css_etape"REDEMARRAGE NGINX + UWSGI"$css_fin
echo "<pre>"
/usr/sbin/nginx -t && /usr/sbin/service nginx reload
/usr/sbin/service uwsgi reload
echo "</pre>"
## Backup du dossier de l'instance (et suppression du dossier)
## -----------------------------------------------------------
echo $css_etape"BACKUP DU DOSSIER DU PROJET"$css_fin
echo "<pre>"
bck_projet='bck_'$env_encours"_"$projet'_'$jour'.tar.gz';
tar -czf $backup_dir/$bck_projet $home/$env_encours/$projet
rm -R $home/$env_encours/$projet
echo "</pre>"
## Suppression de l'environnement s'il n'y a plus de projet dedans
## ---------------------------------------------------------------
echo $css_etape"SUPPRESSION DE L'ENVIRONNEMENT SI VIDE"$css_fin
echo "<pre>"
instances=$(find $home/$env_encours/* -maxdepth 0 -type d \( -exec test -f '{}'/manage.py \; \) -printf "%T@ %p\n");
if [ -z "$instances" ]; then
rm -R $home/$env_encours/
fi
echo "</pre>"
echo "<hr />"
echo $css_etape"FINI"$css_fin
exit 0
#!/bin/bash
chemin_scripts=$(readlink -f $0)
dossier_scripts=$(echo $chemin_scripts | sed "s/\/repaniers_update.sh$//g")
# Recuperation des variables
source $dossier_scripts"/repaniers_vars"
# Check des params
env_encours=$1
projet=$2
if [ "$#" -ne 2 ]; then
echo $css_error"Erreur: Mauvais nombre de param&egrave;tre pass&eacute;s &agrave; la fonction"$css_fin
exit 1
fi
if [[ ! -d $home/$env_encours/$projet && ! -f $home/$env_encours/$projet/manage.py ]]; then
echo $css_error"Erreur: Ce n'est pas une instance valide"$css_fin
exit 1
fi
ndd=$(cat /etc/nginx/sites-available/$projet.gasap.be | grep server_name | head -1 | cut -d " " -f 2 | cut -d ';' -f 1)
db=$(cat $home/$env_encours/$projet/$projet/$projet.ini | grep DJANGO_SETTINGS_DATABASE_NAME | cut -d "=" -f 2)
## Git pull du repo
## ----------------
echo $css_etape"GIT"$css_fin
git_a_jour=false
while [ "$git_a_jour" == "false" ]
do
git_answer=$(sudo -u repanier bash -c "cd $home/repanier_git; LANGUAGE=en_US.UTF-8 git pull 2>&1")
if [[ $git_answer =~ ^You\ are\ not\ currently\ on\ a\ branch.*$ ]]; then
sudo -u repanier bash -c "cd $home/repanier_git; LANGUAGE=en_US.UTF-8 git checkout master"
elif [ "$git_answer" == "Already up-to-date." ]; then
git_a_jour=true
fi
done
echo "<pre>"
echo "Repo git &agrave; jour: $git_a_jour"
echo "</pre>"
# Nouveau nom de l'environnement
nom=$(echo $env_encours | sed 's/\(.*\)\([0-9]\+\)$/\1/g');
id=$(echo $env_encours | sed 's/.*\([0-9]\+\)$/\1/g');
env_existant=false
bon_env=false
while [ "$bon_env" == "false" ]
do
((id += 1))
nouvel_env=$nom""$id
if [[ -d $home/$nouvel_env && -f $home/$nouvel_env/bin/activate ]]; then
info_commit_git=$(sudo -u repanier bash -c "cd ~/repanier_git/; git rev-parse --short HEAD")
info_commit_dernier_env=$(cat $home/$nouvel_env/COMMIT | cut -d '_' -f 1)
# On regarde si l'env le plus recent est a jour avec le dernier commit.
# Si non, on crn nouvel env, si oui, on utilise le dernier env
if [ "$info_commit_git" == "$info_commit_dernier_env" ]; then
env_existant=true
bon_env=true
fi
else
bon_env=true
fi
done
## Comparaison des fichiers .ini entre git et projet pour voit s'il y a des nouvelles options
## ------------------------------------------------------------------------------------------
arr_ds_1=$(cat $home/$env_encours/$projet/$projet/$projet.ini | grep "=" | cut -d "=" -f 1)
arr_ds_2=$(cat $home/repanier_git/mysite/_0_prd_example.ini | grep "=" | cut -d "=" -f 1)
for opt2 in $arr_ds_2
do
bln_trouve=false
for opt1 in $arr_ds_1
do
if [ "$opt2" == "$opt1" ]; then
bln_trouve=true
fi
done
if [ "$bln_trouve" == "false" ]; then
echo $css_error"Erreur: Nouveau param&egrave;tre dans fichier .ini: $opt2"$css_fin
exit 1
fi
done
# Affichage d'infos
echo $css_etape"INFOS"$css_fin
echo "<pre>"
echo "Instance: $projet"
echo "Nom de domaine: $ndd"
echo "Dossier de l'environnement actuel: $env_encours"
echo "Dossier du nouvel environnement: $nouvel_env"
echo "Le nouvel environnement existe-t'il d&eacute;j&agrave;?: $env_existant"
echo "</pre>"
# Avant de commencer quoi que ce soit, on backup la db
echo $css_etape"BACKUP"$css_fin
jour=$(date +'%y-%m-%d_%Hh%M');
bck_file='bck_'$env_encours"_"$db'_'$jour'.pgdump';
echo "<pre>"
echo "Lancement du backup de "$db" vers "$bck_file;
PGPASSWORD="$db_passwd" /usr/bin/pg_dump -h localhost -U $db_user -d $db -n public --format=custom -f $backup_dir/$bck_file;
cd $backup_dir && gzip $bck_file
echo "</pre>"
if [[ "$env_existant" == "false" || "$git_a_jour" == "false" ]]; then
# faut crer un nouvel environnement
echo $css_etape"CREATION NOUVEL ENV"$css_fin
## Crer nouvel environnement virtuel python:
## ------------------------------------------
echo "<pre>"
sudo -u repanier bash -c "virtualenv --python=python3 $home/$nouvel_env"
echo "</pre>"
echo "<pre>"
sudo -u repanier bash -c "wget -O $home/$nouvel_env/requirement.txt https://raw.githubusercontent.com/pcolmant/repanier/master/requirements/requirement.txt"
echo "</pre>"
echo "<pre>"
sudo -u repanier bash -c "cd $home/$nouvel_env; source bin/activate; pip install -r requirement.txt"
echo "</pre>"
# On conserve un fichier du git pour avoir l'id du commit pour cet environnement
info_commit1=$(sudo -u repanier bash -c "cd ~/repanier_git/; git rev-parse --short HEAD")
info_commit2=$(sudo -u repanier bash -c "cd ~/repanier_git/; git log -1 --format=%cd --date=format:%d-%b-%Y")
commit=$info_commit1"_"$info_commit2
sudo -u repanier bash -c "echo $commit > ~/$nouvel_env/COMMIT"
fi
## Avant de crer le projet, on vrifie que le dossier n'existe pas dj dans l'envirinnmenet dans lequel on va travailler
if [ -d $home/$nouvel_env/$projet ]; then
echo $css_error"Erreur: Le projet semble d&eacute;j&agrave; exister dans le dossier de l'environnement dans lequel on allait travailler"$css_fin
exit 1
fi
## Crer le projet
## ---------------
echo $css_etape"CREATION INSTANCE"$css_fin
echo "<pre>"
sudo -u repanier bash -c "cd $home/$nouvel_env; source bin/activate; django-admin.py startproject $projet"
echo "<pre>"
## Copier les fichiers ncessaires du repo git vers le projet
## ----------------------------------------------------------
echo $css_etape"COPIE DES FICHIERS DU GIT"$css_fin
echo "<pre>"
mkdir $home/$nouvel_env/$projet/$projet/media/public -p
chown -R repanier:www-data $home/$nouvel_env/$projet/$projet/media
chmod -R g+w $home/$nouvel_env/$projet/$projet/media
sudo -u repanier bash -c "cp ~/repanier_git/mysite/media/robots.txt ~/$nouvel_env/$projet/$projet/media/"
sudo -u repanier bash -c "cp ~/repanier_git/mysite/media/favicon.ico ~/$nouvel_env/$projet/$projet/media/"
sudo -u repanier bash -c "cp ~/repanier_git/mysite/common_settings.py ~/$nouvel_env/$projet/$projet/"
sudo -u repanier bash -c "cp ~/repanier_git/mysite/urls.py ~/$nouvel_env/$projet/$projet/"
sudo -u repanier bash -c "cp ~/repanier_git/mysite/wsgi.py ~/$nouvel_env/$projet/$projet/"
sudo -u repanier bash -c "cp -R ~/repanier_git/mysite/locale/ ~/$nouvel_env/$projet/$projet/"
sudo -u repanier bash -c "cp -R ~/repanier_git/cron/ ~/$nouvel_env/$projet/"
sudo -u repanier bash -c "cp ~/repanier_git/manage.py ~/$nouvel_env/$projet/"
sudo -u repanier bash -c "cp -R ~/repanier_git/repanier/ ~/$nouvel_env/$projet/"
sudo -u repanier bash -c "cp ~/$env_encours/$projet/$projet/$projet.ini ~/$nouvel_env/$projet/$projet/$projet.ini"
echo "<pre>"
## Efface le cache
## ---------------
echo $css_etape"EFFACE LE CACHE"$css_fin
echo "<pre>"
rm -rf /var/tmp/django-cache/$ndd/
chown www-data:repanier /var/tmp/django-cache
chmod 0770 /var/tmp/django-cache
echo "</pre>"
## Compilation du projet
## ---------------------
echo $css_etape"COLLECTSTATIC"$css_fin
echo "<pre>"
sudo -u repanier bash -c "cd $home/$nouvel_env; source bin/activate; cd $projet; python manage.py collectstatic;"
echo "</pre>"
echo $css_etape"MAKEMIGRATIONS"$css_fin
echo "<pre>"
sudo -u repanier bash -c "cd $home/$nouvel_env; source bin/activate; cd $projet; python manage.py makemigrations repanier;"
echo "</pre>"
echo $css_etape"MIGRATE"$css_fin
echo "<pre>"
sudo -u repanier bash -c "cd $home/$nouvel_env; source bin/activate; cd $projet; python manage.py migrate;"
echo "</pre>"
# Creation du superuser, est-ce ncessaire lors des mj?
#sudo -u repanier bash -c "cd $home/$nouvel_env; source bin/activate; python manage.py createsuperuser
## Efface le cache
## ---------------
echo $css_etape"EFFACE LE CACHE"$css_fin
echo "<pre>"
rm -rf /var/tmp/django-cache/$ndd/
chown www-data:repanier /var/tmp/django-cache
chmod 0770 /var/tmp/django-cache
echo "</pre>"
## Mj du Vhost de nginx & Wsgi
## ----------------------------
echo $css_etape"MISE &Agrave; JOUR VHOST NGINX"$css_fin
echo "<pre>"
sed -i -e "s/$env_encours/$nouvel_env/g" /etc/nginx/sites-available/$projet.gasap.be
echo "</pre>"
echo $css_etape"MISE &Agrave; JOUR FICHIER UWSGI"$css_fin
echo "<pre>"
sed -i -e "s/$env_encours/$nouvel_env/g" /etc/uwsgi/apps-available/$projet.ini
echo "</pre>"
echo $css_etape"REDEMARRAGE NGINX + UWSGI"$css_fin
echo "<pre>"
/usr/sbin/nginx -t && /usr/sbin/service nginx reload
/usr/sbin/service uwsgi reload
echo "</pre>"
echo "<hr />"
echo $css_etape"FINI"$css_fin
echo "<hr />"
exit 0
#!/bin/bash
ip_server=""
home=""
backup_dir=""
## Database
##
db_user=""
db_passwd=""
## Admin
## -----
admin_mail=""
admin_name=""
## Mail
## ----
smtp_host=""
smtp_passwd=""
smtp_user=""
## STYLE
## -----
css_etape="<div style='color:green;font-weight:bold;margin:0.2 0.3; padding:0;'>"
css_error="<div style='color:red;font-weight:bold;margin:0.2 0.3; padding:0;'>"
css_fin="</div><br />"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment