# SliTaz package receipt.

PACKAGE="couchdb"
VERSION="1.0.2"
SOURCE="apache-couchdb"
CATEGORY="development"
SHORT_DESC="Apache CouchDB is document-oriented database."
MAINTAINER="claudinei@slitaz.org"
TARBALL="$SOURCE-$VERSION.tar.gz"
WEB_SITE="http://couchdb.apache.org"
APACHE_MIRROR="http://mirrors.dedipower.com/ftp.apache.org/"
WGET_URL="$APACHE_MIRROR/$PACKAGE/$VERSION/$TARBALL"

DEPENDS="erlang icu openssl util-linux-ng-getopt spidermonkey libcurl curl"
BUILD_DEPENDS="erlang openssl-dev spidermonkey-dev curl-dev icu-dev"

# Rules to configure and make the package.
compile_rules()
{
	cd $src
	./configure \
		--prefix=/usr \
		--sysconfdir=/etc \
		--with-js-include=/usr/include/js \
		--localstatedir=/var \
		--infodir=/usr/share/info \
		--mandir=/usr/share/man \
		$CONFIGURE_ARGS &&
	make && make DESTDIR=$PWD/_pkg install
}

# Rules to gen a SliTaz package suitable for Tazpkg.
genpkg_rules()
{
	mkdir -p $fs/usr/share $fs/etc
	cp -a $_pkg/usr/bin $fs/usr
	cp -a $_pkg/usr/lib $fs/usr
	cp -a $_pkg/usr/share/couchdb $fs/usr/share
	cp -a $_pkg/var $fs
	cp -a $_pkg/etc/couchdb $fs/etc
	cp -a $_pkg/etc/default/couchdb $fs/etc/couchdb
	cp -a $_pkg/etc/init.d $fs/etc
	cp -a $_pkg/etc/logrotate.d $fs/etc
	sed -i "s|/etc/default/couchdb|/etc/couchdb/couchdb|" \
		$fs/etc/init.d/couchdb
}

# Pre install commands for tazpkg
# See if couchdb is already installed and, just in case, stop it
pre_install()
{
	INIT_FILE="/etc/init.d/$PACKAGE"
	echo "Processing pre-install commands..."
	[ -f $INIT_FILE ] && $INIT_FILE stop
	echo "Done..."
}

# Post install commands for tazpkg
# Create couchdb user and group
post_install()
{
	LIBDIR="/var/lib/$PACKAGE"
	ETCDIR="/etc/$PACKAGE"
	LOGDIR="/var/log/$PACKAGE"
	RUNDIR="/var/run/$PACKAGE"

	echo "Processing post-install commands..."

	grep -q "$PACKAGE" /etc/group || addgroup -S $PACKAGE

	grep -q "$PACKAGE" /etc/passwd || adduser -S -D -H -h $LIBDIR \
	        -G $PACKAGE -s /bin/sh -g "CouchDB Administrator" $PACKAGE

	for DIR in $LIBDIR $ETCDIR $LOGDIR $RUNDIR; do
		chown -R $PACKAGE:$PACKAGE $DIR && chmod -R 0770 $DIR
	done

	echo "Done..."
}

# Pre and post remove commands for Tazpkg.
pre_remove()
{
	INIT_FILE="/etc/init.d/$PACKAGE"
	echo "Processing pre-remove commands..."
	[ -f $INIT_FILE ] && $INIT_FILE stop
	echo "Done..."
}

post_remove()
{
	LIBDIR="/var/lib/$PACKAGE"
	ETCDIR="/etc/$PACKAGE"
	LOGDIR="/var/log/$PACKAGE"
	RUNDIR="/var/run/$PACKAGE"

	echo "Processing post-remove commands..."

	deluser $PACKAGE

	for DIR in $LIBDIR $ETCDIR $LOGDIR $RUNDIR; do
		rm -rf $DIR
	done

	echo "Done..."
}