kalibro-configurations.spec
3.53 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
Name: kalibro-configurations
Version: 1.0.0.backport
Release: 1%{?dist}
Summary: Mezuro metrics management backend
Group: Development/Tools
License: AGPLv3
URL: https://github.com/mezuro/kalibro_configurations
Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
BuildRequires: kalibro-configurations-deps
Requires: kalibro-configurations-deps, rubygem-bundler
%description
%prep
%setup -q
%build
ln -sf /usr/lib/kalibro_configurations/Gemfile .
ln -sf /usr/lib/kalibro_configurations/Gemfile.lock .
ln -sf /usr/lib/kalibro_configurations/.bundle .
ln -sfT /usr/lib/kalibro_configurations/vendor/bundle vendor/bundle
rm -f Gemfile Gemfile.lock .bundle vendor/bundle
rm -rf tmp log
%install
mkdir -p %{buildroot}/usr/lib/kalibro-configurations
cp -r * %{buildroot}/usr/lib/kalibro-configurations
rm -rf %{buildroot}/usr/lib/kalibro-configurations/log
ln -sfT /var/log/kalibro-configurations %{buildroot}/usr/lib/kalibro-configurations/log
ln -sfT /etc/kalibro-configurations/database.yml %{buildroot}/usr/lib/kalibro-configurations/config/database.yml
mkdir -p %{buildroot}/lib/systemd/system
cat >> %{buildroot}/lib/systemd/system/kalibro-configurations.service <<EOF
[Unit]
Description=kalibro-configurations
After=network.target
[Service]
Type=simple
EnvironmentFile=-/etc/sysconfig/kalibro-configurations
User=kalibro-configurations
WorkingDirectory=/usr/lib/kalibro-configurations
ExecStart=bundle exec rails s -p 8083
[Install]
WantedBy=multi-user.target
EOF
mkdir -p %{buildroot}/etc/kalibro-configurations
cat >> %{buildroot}/etc/kalibro-configurations/database.yml << EOF
production:
adapter: postgresql
encoding: unicode
database: kalibro_configurations_production
pool: 10
username: kalibro_configurations
password:
EOF
#FIXME HACK, REMOVE LATER
sed -i -e "s/require.*database_cleaner/# &/" %{buildroot}/usr/lib/kalibro-configurations/app/controllers/tests_controller.rb
%post
groupadd kalibro_configurations || true
if ! id kalibro_configurations; then
adduser kalibro_configurations --system -g kalibro_configurations --shell /bin/sh --home-dir /usr/lib/kalibro-configurations
fi
mkdir -p /var/log/kalibro-configurations
chown -R kalibro_configurations:kalibro_configurations /var/log/kalibro-configurations
if [ -x /usr/bin/postgres ]; then
if [ `systemctl is-active postgresql`!="active" ]; then
postgresql-setup initdb || true
systemctl start postgresql
fi
if [ "$(sudo -u postgres -i psql --quiet --tuples-only -c "select count(*) from pg_user where usename = 'kalibro_configurations';")" -eq 0 ]; then
# create user
sudo -u postgres -i createuser kalibro_configurations
fi
if [ "$(sudo -u postgres -i psql --quiet --tuples-only -c "select count(1) from pg_database where datname = 'kalibro_configurations_production';")" -eq 0 ]; then
# create database
sudo -u postgres -i createdb --owner=kalibro_configurations kalibro_configurations_production
fi
cd /usr/lib/kalibro-configurations/
su kalibro_configurations -c "RAILS_ENV=production bundle exec rake db:migrate"
if [ $1 -eq 1 ]; then
su kalibro_configurations -c "RAILS_ENV=production bundle exec rake db:seed"
fi
fi
if [ $1 -gt 1 ]; then
echo 'Restarting kalibro-configurations'
systemctl daemon-reload
systemctl try-restart kalibro-configurations
fi
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
%doc
/usr/lib/kalibro-configurations
/lib/systemd/system/kalibro-configurations.service
%config(noreplace) /etc/kalibro-configurations/database.yml
%changelog