-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathentrypoint
executable file
·119 lines (95 loc) · 4.51 KB
/
entrypoint
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
#!/bin/bash
set -e
if [ ! -f $MERAN_CONFIG ]; then
# Configuracion principal de meran
[ -f $TPL_MAIN_CONFIG ] || ( echo "El archivo $TPL_MAIN_CONFIG debe existir"; exit 1 )
sed s@reemplazarID@$ID@g $TPL_MAIN_CONFIG > $MERAN_CONFIG
sed -i s@reemplazarUSER@$DB_USER@g $MERAN_CONFIG
sed -i s@reemplazarPASS@$DB_PASS@g $MERAN_CONFIG
sed -i s@reemplazarBDDHOST@$DB_HOST@g $MERAN_CONFIG
sed -i s@reemplazarDATABASE@$DB_NAME@g $MERAN_CONFIG
sed -i s@reemplazarPATHBASE@$MERAN_PATH@g $MERAN_CONFIG
sed -i s@reemplazarPATHFILES@/meran@g $MERAN_CONFIG
sed -i 's,^\(sphinx_conf=\).*,\1'/etc/meran/sphinx.conf',' $MERAN_CONFIG
sed -i 's,^\(sphinx_bin_dir=\).*,\1'/opt/sphinx/bin/',' $MERAN_CONFIG
sed -i 's,^\(use_socket=\).*,\1'0',' $MERAN_CONFIG
fi
# Instalar dependencias
[ -L /var/log/meran ] || ln -s /meran/logs /var/log/meran
[ -d /var/log/meran/main ] || mkdir /var/log/meran/main
[ -d /etc/apache2/sites-enabled ] && rm -fr /etc/apache2/sites-enabled/*
ln -s /opt/apache-opac /etc/apache2/sites-enabled/opac.conf
ln -s /opt/apache-ssl /etc/apache2/sites-enabled/ssl.conf
# Bug: Apache fails to start after reboot due to missing /var/run/apache2 directory when SSL is enabled
[ -d /var/run/apache2 ] || mkdir /var/run/apache2
[ -L /etc/apache2/ssl ] || ln -s /meran/ssl/ /etc/apache2/ssl
if [ ! -f /etc/apache2/ssl/$ID/apache.pem ]; then
# Generando el certificado de apache
mkdir -p /etc/apache2/ssl/$ID
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/apache2/ssl/$ID/apache.pem -out /etc/apache2/ssl/$ID/apache.pem
fi
if [ ! -L /etc/apache2/mods-enabled/ssl.load ]; then
a2enmod ssl
fi
if [ ! -L /etc/apache2/mods-enabled/rewrite.load ]; then
a2enmod rewrite
fi
if [ ! -L /etc/apache2/mods-enabled/expires.load ]; then
a2enmod expires
fi
if [ ! -L /etc/apache2/mods-enabled/headers.load ]; then
a2enmod headers
fi
chown www-data:www-data -R /meran
chown www-data:www-data -R $MERAN_PATH
### Database configuration
TPL_BASE_DB=$MERAN_PATH/$ID/docs/instalador/base.sql
TPL_UPDATES_DB=$MERAN_PATH/$ID/docs/instalador/updates.sql
TPL_PERMISOS_DB=$MERAN_PATH/$ID/docs/instalador/permisosbdd.sql
PERMISOS_DB=/tmp/permisos_meran.sql
BASE_DB=/tmp/demo_meran.sql
UPDATES_DB=/tmp/updates_meran.sql
MYSQL="mysql -u$DB_USER -h$DB_HOST --default-character-set=utf8 --batch --skip-column-names"
if [ ! -z "$DB_PASS" ]; then
MYSQL="$MYSQL -p$DB_PASS"
fi
DBEXISTS=$($MYSQL -e "SHOW DATABASES LIKE '"$DB_NAME"';" | grep -q "$DB_NAME" ; echo "$?")
COUNT_TABLES=$($MYSQL $DB_NAME -e "SHOW TABLES; SELECT FOUND_ROWS();" | tail -1)
if [ "$DBEXISTS" -ne 0 ] || [ "$DBEXISTS" -eq 0 -a "$COUNT_TABLES" -eq 0 ]; then
#La base no existe o está vacía
sed s@reemplazarDATABASE@$DB_NAME@g $TPL_PERMISOS_DB > $PERMISOS_DB
sed -i s@reemplazarUSER@$DB_USER@g $PERMISOS_DB
sed -i s@reemplazarPASS@$DB_PASS@g $PERMISOS_DB
sed -i s@reemplazarHOST@$DB_HOST@g $PERMISOS_DB
sed -i s@reemplazarIUSER@$DB_USER@g $PERMISOS_DB
sed -i s@reemplazarIPASS@$DB_PASS@g $PERMISOS_DB
echo "DROP DATABASE IF EXISTS $DB_NAME;" > $BASE_DB
head -n3 $PERMISOS_DB >> $BASE_DB
cat $TPL_BASE_DB >> $BASE_DB
tail -n2 $PERMISOS_DB >> $BASE_DB
#Creamos la base con permisos
$MYSQL -f < $BASE_DB
#Actualizamos la Base
sed s@reemplazarDATABASE@$DB_NAME@g $TPL_UPDATES_DB > $UPDATES_DB
$MYSQL -f < $UPDATES_DB
fi
if [ -f $SPHINX_CONFIG ]; then
# Generando el índice la primera vez si no existe
sed -i s@reemplazarNAME@$DB_NAME@g $SPHINX_CONFIG
sed -i s@reemplazarUSER@$DB_USER@g $SPHINX_CONFIG
sed -i s@reemplazarPASS@$DB_PASS@g $SPHINX_CONFIG
sed -i s@reemplazarHOST@$DB_HOST@g $SPHINX_CONFIG
/opt/sphinx/bin/indexer -c $SPHINX_CONFIG --all --rotate
fi
#CONSIDERAR los crons en la maquina host así como la rotacion de logs en el volumen
if [ ! -d /cron ]; then
mkdir /cron
printf "#!/bin/bash\n cd $MERAN_PATH/$ID/intranet/modules/ ; perl ../cgi-bin/cron/reindexar.pl" > /cron/reindexar
printf "#!/bin/bash\n cd $MERAN_PATH/$ID/intranet/modules/ ; perl ../cgi-bin/cron/obtener_portadas_de_registros.pl" > /cron/portadas
printf "#!/bin/bash\n cd $MERAN_PATH/$ID/intranet/modules/ ; perl ../cgi-bin/cron/generar_indice.pl" > /cron/generar_indice
printf "#!/bin/bash\n cd $MERAN_PATH/$ID/intranet/modules/ ; perl ../cgi-bin/cron/recordatorio_prestamos_vto.pl" > /cron/mail_recordatorio_prestamos
printf "#!/bin/bash\n cd $MERAN_PATH/$ID/intranet/modules/ ; perl ../cgi-bin/cron/mail_prestamos_vencidos.pl" > /cron/mail_prestamos_vencidos
chown www-data:www-data -R /cron/
chmod +x /cron/*
fi
/usr/sbin/apache2ctl -D FOREGROUND