-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlinuxfr_install.sh
More file actions
executable file
·127 lines (89 loc) · 3.56 KB
/
linuxfr_install.sh
File metadata and controls
executable file
·127 lines (89 loc) · 3.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/bin/bash
# variables pour l'exécution du script
home="/home/linuxfr"
site_path="$home/development/current"
mysql_pass="linuxfr"
ruby_gem="/usr/local/rvm/rubies/ruby-1.9.3-p286/bin/"
repo_url=$1
tmp_depot="/tmp/tmp-depot-linuxfr"
echo "Installation du site LinuxFr, pour plus d'informations merci de consulter le README"
# vérification de l'utilisateur en cours
if [ $USER != "root" ] ; then
echo "Vous devez lancer le script d'initialisation avec l'utilisateur root !"
exit
fi
# Récupération du dépôt à utiliser
if [ "$repo_url" == "" ] ; then
repo_url="git://github.com/nono/linuxfr.org.git"
fi
# vérification du dépôt
echo " - Test du dépôt $repo_url"
if [ -d "$tmp_depot" ] ; then
rm -fr "$tmp_depot"
fi
git clone -q $repo_url $tmp_depot
if [ $? = 0 ] ; then
echo " - Utilisation du dépôt $repo_url"
else
echo " - Le dépôt n'est pas valide : $repo_url"
exit
fi
# on stop les services
echo " - Arret des services"
/etc/init.d/nginx stop
/etc/init.d/img stop
/etc/init.d/board stop
/etc/init.d/unicorn stop
# on supprime le site et les logs si ils existent déjà
if [ -d "$site_path" ] ; then
echo " - Suppression du site déjà existant"
rm -fr "$site_path"
find $home/development -iname *.log -exec rm -f {} \;
fi
#on copie le dépôt git
echo " - Copie des sources récupérés sur $repo_url"
mv $tmp_depot $site_path
chown -R linuxfr:linuxfr $site_path
#fichiers de configuration
echo " - Mise à jour des fichiers de configuration "
#Mise à jour du fichier database.yml et secret.yml
sed "s/username: .*/username: root/" $site_path/config/database.yml.sample | sed "s/password:.*$/password: $mysql_pass/" > $site_path/config/database.yml
cp $site_path/config/secret.yml{.sample,}
chown linuxfr:linuxfr $site_path/config/secret.yml
chown linuxfr:linuxfr $site_path/config/database.yml
#Mise à jour du fichier development.rb
mv $site_path/config/environments/development.rb $site_path/config/environments/development.rb.old
sed "s/IMG_DOMAIN = 'dlfp.lo'/IMG_DOMAIN = \`\/sbin\/ifconfig | sed -n '\/dr:\/{;s\/.*dr:\/\/;s\/ .*\/\/;p;}' | grep -v ^127\`.strip\!/" $site_path/config/environments/development.rb.old > $site_path/config/environments/development.rb
rm $site_path/config/environments/development.rb.old
# installe bundler rake
echo " - Installation de bundler & rake"
su -l -c "cd $site_path;gem install bundler rake" linuxfr
# installation du site
echo " - Installation du site"
su -l -c "cd $site_path;bundle install" linuxfr
# On vide Redis
echo " - Réinitialisation de Redis"
redis-cli flushdb
# Initialisation de la base de données
echo " - Initialisation de la base de donnée"
su -l -c "cd $site_path;rake db:setup" linuxfr
#Insertion des données sql de test
echo " - Insertion des données de test dans la base de donnée"
for file in `ls $home/LinuxFr-DevData/sql/*.sql | grep -v "date"` ; do
echo "Fichier $file"
mysql -u root -p$mysql_pass linuxfr_rails < $file;
done
# Mise à jour des dates dans la base à partir de la date d''aujourd'hui
echo " - Mise à jour des date dans la base de donnée à partir de la date d'aujourd'hui"
mysql -u root -p$mysql_pass linuxfr_rails < $home/LinuxFr-DevData/sql/linuxfr_rails_set_date.sql;
#insertion des données dans redis
echo " - Insertion des données (images et liens) dans redis"
cat redis/img | xargs -i redis-cli hsetnx "{}" "created_at" `date +%s`
cat redis/link-hits | redis-cli
cat redis/link-url | redis-cli
# Redemarrage des services
echo " - Redemarrage des services"
/etc/init.d/img start
/etc/init.d/board start
/etc/init.d/unicorn start
/etc/init.d/nginx start