# $Id: Portfile 91640 2012-04-07 02:12:33Z ryandesign@macports.org $

PortSystem 1.0

name			geneweb
version			5.02
revision		1
categories		genealogy
maintainers		bfulgham
description		Sophisticated Genealogy System 
long_description	GeneWeb is sophisticated genealogy software with a \
			web interface.  It provides efficient relationship and consanguinity \
			computing, support for very large database (i.e., hundreds of thousands \
			of entries), and more.

homepage		http://cristal.inria.fr/~ddr/GeneWeb
master_sites		http://cristal.inria.fr/~ddr/GeneWeb/ftp/Src \
			ftp://ftp.inria.fr/INRIA/Projects/cristal/${name}/Src \
			http://www.sartorelli.gen.nz/GeneWeb/Src
distfiles		${name}-${version}.tgz
checksums		md5 e8c6c789a9dd2f9155bf6eefa8786d01 \
			sha1 e040496b3ce106cc7a508360cd0e4268bcb3e7b1 \
			rmd160 fd284630e11957cf1265bfce9207e46d449a83ec
platforms		darwin

depends_build		port:ocaml \
			port:camlp5

patchfiles		patch-5.02-1

use_parallel_build	no

destroot.target		distrib

set gwuser		${name}
set gwgroup		${name}
set logdir		${prefix}/var/log
set langdir		${prefix}/share/${name}/gw
set dbdir		${prefix}/var/db/${name}

startupitem.create	yes
startupitem.init        HOME=${prefix}/share/${name}
startupitem.start	"su ${gwuser} -c \"cd ${prefix}/share/${name} && ./gw/gwd -bd${dbdir} -hd${langdir} -dd${langdir} -langen -log${logdir}/${name}.log -daemon\""
startupitem.pidfile	none

platform darwin {
	if {${configure.build_arch} == "x86_64" || ${configure.build_arch} == "ppc64"} {
		patchfiles-append patch-64-bit
	}
}

pre-destroot		{
	addgroup ${gwgroup}
	set gid [existsgroup ${gwgroup}]
	adduser ${gwuser} shell=/bin/sh gid=${gid} \
		home=${prefix}/share/${name} \
		realname=Geneweb\ Server
}

destroot		{
	system "cd ${worksrcpath} && make distrib"
}

destroot.keepdirs	${destroot}${dbdir}

set distrib		${worksrcpath}/distribution

post-destroot		{
	xinstall -m 0755 -o ${gwuser} -g ${gwgroup} -d ${destroot}${logdir}
	xinstall -m 0755 -o ${gwuser} -g ${gwgroup} -d ${destroot}${dbdir}

	system "touch ${destroot}${logdir}/${name}.log"
	system "chown ${gwuser}:${gwgroup} ${destroot}${logdir}/${name}.log"
	system "chown -R ${gwuser}:${gwgroup} ${destroot}${dbdir}"

	xinstall -m 0755 -o ${gwuser} -g ${gwgroup} -d ${destroot}${prefix}/share/${name}
	xinstall -m 0755 -o ${gwuser} -g ${gwgroup} -d ${destroot}${prefix}/share/doc/${name}

	foreach x {LICENSE.txt README.txt START.htm gw gwd gwsetup} { file copy -force ${distrib}/${x} ${destroot}${prefix}/share/${name}/${x} }
	
	system "chmod a+rx ${destroot}${prefix}/share/${name}/gwsetup"
	system "chmod a+rx ${destroot}${prefix}/share/${name}/gwd"

	# Make the directory structure generally writeable so the gwsetup and other stuff will work easily.
	system "chown -R ${gwuser}:${gwgroup} ${destroot}${prefix}/share/${name}"
	system "chmod -R a+r ${destroot}${prefix}/share/${name}/gw"

	# Move a few utilities where the user can get to them easily
	file copy -force ${destroot}${prefix}/share/${name}/gw/consang ${destroot}${prefix}/bin
	file copy -force ${destroot}${prefix}/share/${name}/gw/ged2gwb ${destroot}${prefix}/bin
	file copy -force ${destroot}${prefix}/share/${name}/gw/gwb2ged ${destroot}${prefix}/bin
	file copy -force ${filespath}/gwsetup.macports ${destroot}${prefix}/bin/gwsetup

	# Set correct path in gwsetup
	reinplace "s|%PREFIX%|${prefix}|" ${destroot}${prefix}/bin/gwsetup
	system "chmod a+rx ${destroot}${prefix}/bin/gwsetup"
}

pre-install		{
	addgroup ${gwgroup}
	set gid [existsgroup ${gwgroup}]
	adduser ${gwuser} shell=/bin/sh gid=${gid} \
		home=${prefix}/share/${name} \
		realname=Geneweb\ Server
}

post-activate	{
	system "chown -R ${gwuser}:${gwgroup} ${prefix}/var/db/${name}"
	system "chmod -R a+rw ${prefix}/var/db/${name}"
}

notes "
Geneweb will be listening on localhost, port 2317.

To get started, you will need to load an initial database.\
Run the program 'gwsetup' to get started. After that point,\
simply point your browser to http://localhost:2317 to review\
the data.
"
