noosfero.postinst
2.97 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
#!/bin/sh
set -e
makedir() {
if [ ! -d $1 ]; then
mkdir $1
fi
chown noosfero:noosfero $1
}
# migrate thin configuration to unicorn
unicorn_config=/etc/noosfero/unicorn.rb
thin_config=/etc/noosfero/thin.yml
thin_orig_sha1=47cee6728a7896a13f4d66544086ab88b02e89a7
if [ -r $thin_config ]; then
thin_sha1=$(sha1sum $thin_config | awk '{print $1}')
if [ "$thin_sha1" != "$thin_orig_sha1" ]; then
port=$(awk '{ if ($1 == "port:") { print($2) } }' $thin_config)
servers=$(awk '{ if ($1 == "servers:") { print($2) } }' $thin_config)
if test -n "$port" && test "$port" -ne 50000 || test -n "$servers" && test "$servers" -ne 1 ; then
# thin configuration was changed; update unicorn configuration
# accordingly
sed -i -e "s/listen.*/listen '127.0.0.1:$port'/" $unicorn_config
sed -i -e "s/worker_processes.*/worker_processes $servers/" $unicorn_config
fi
fi
mv $thin_config $thin_config.bak
fi
# create user noosfero in a portable way, while creating the log directory.
# (idea taken from the postfix package)
##############################################################################
if [ ! -d /var/log/noosfero ]; then
mkdir /var/log/noosfero
fi
chgrp noosfero /var/log/noosfero 2>/dev/null ||
addgroup --system noosfero
chown noosfero /var/log/noosfero 2>/dev/null ||
adduser --system --home /usr/share/noosfero --shell /bin/sh --no-create-home --disabled-password --ingroup noosfero noosfero
# create noosfero dynamic data directories
##############################################################################
noosfero_data_dir='/var/lib/noosfero-data'
makedir $noosfero_data_dir
makedir $noosfero_data_dir/index
makedir $noosfero_data_dir/cache
makedir $noosfero_data_dir/public
makedir $noosfero_data_dir/public/articles
makedir $noosfero_data_dir/public/image_uploads
makedir $noosfero_data_dir/public/thumbnails
# Instruct dbconfig-common to generate database configuration file
##############################################################################
noosfero_database_yml="/etc/noosfero/database.yml"
dbc_generate_include="template:$noosfero_database_yml"
dbc_generate_include_args="-o template_infile=/usr/share/noosfero/config/database.yml.template"
dbc_generate_include_owner="root:noosfero"
dbc_generate_include_perms="640"
. /usr/share/debconf/confmodule
db_get noosfero/initial_domain
if [ ! -z "$RET" ]; then
# this is going to be used by the db:data:minimal rake task, called by
# /usr/lib/noosfero/dbinstall
export NOOSFERO_DOMAIN="$RET"
fi
/etc/init.d/noosfero setup
# dbconfig-common magic
. /usr/share/dbconfig-common/dpkg/postinst
dbc_go noosfero $@
if [ ! -f /usr/share/noosfero/cache/private_files.pag ] && [ $1 = "configure" ] && [ -n $2 ]; then
echo "Creating private files dbm map..."
cd /usr/share/noosfero && su noosfero -c "rake cache:private_files RAILS_ENV=production"
fi
# stop debconf to avoid the problem with infinite hanging, cfe
# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=295477
db_stop
#DEBHELPER#