From b01715be285bdce082e27a80796dcadb1df859a0 Mon Sep 17 00:00:00 2001 From: Antonio Terceiro Date: Fri, 31 May 2013 18:34:20 -0300 Subject: [PATCH] Don't start service without a proper DB config --- debian/noosfero-check-dbconfig | 21 +++++++++++++++++++++ debian/noosfero.install | 1 + etc/init.d/noosfero | 7 +++++++ 3 files changed, 29 insertions(+), 0 deletions(-) create mode 100755 debian/noosfero-check-dbconfig diff --git a/debian/noosfero-check-dbconfig b/debian/noosfero-check-dbconfig new file mode 100755 index 0000000..01c825d --- /dev/null +++ b/debian/noosfero-check-dbconfig @@ -0,0 +1,21 @@ +#!/usr/bin/ruby + +require 'yaml' + +DBCONFIG = ARGV.first || '/etc/database/database.yml' + +$dbconfig = {} + +checks = [ + lambda { File.exists?(DBCONFIG) }, + lambda { $dbconfig = YAML.load_file(DBCONFIG) }, + lambda { $dbconfig['production'] }, + lambda { $dbconfig['production']['adapter'] }, + lambda { $dbconfig['production']['database'] }, +] + +if checks.all?(&:call) + exit 0 +else + exit 1 +end diff --git a/debian/noosfero.install b/debian/noosfero.install index ad5f683..da53ebf 100644 --- a/debian/noosfero.install +++ b/debian/noosfero.install @@ -38,3 +38,4 @@ locale usr/share/noosfero doc/noosfero usr/share/noosfero/doc debian/noosfero-console usr/sbin +debian/noosfero-check-dbconfig usr/sbin diff --git a/etc/init.d/noosfero b/etc/init.d/noosfero index ec035d2..185a558 100755 --- a/etc/init.d/noosfero +++ b/etc/init.d/noosfero @@ -44,6 +44,13 @@ if [ -z "$NOOSFERO_DIR" ] || [ -z "$NOOSFERO_USER" ]; then exit 0 fi +if test -x /usr/sbin/noosfero-check-dbconfig ; then + if ! noosfero-check-dbconfig; then + echo "Noosfero database access not configured, service disabled." + exit 0 + fi +fi + ###################### main_script() { -- libgit2 0.21.2