# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 # $Id: Portfile 114325 2013-12-05 09:20:31Z ryandesign@macports.org $ PortSystem 1.0 name cassandra version 1.2.3 categories databases maintainers nomaintainer homepage http://cassandra.apache.org/ platforms darwin license Apache-2 master_sites apache master_sites.mirror_subdir ${name}/${version} distname apache-${name}-${version}-src description A highly scalable, eventually consistent, \ distributed, structured key-value store. long_description \ The Apache Cassandra Project develops a highly scalable second-generation \ distributed database, bringing together Dynamo's fully distributed design \ and Bigtable's ColumnFamily-based data model. Cassandra was open sourced \ by Facebook in 2008, and is now developed by Apache committers and \ contributors from many companies. checksums rmd160 631f55dd4cbe363019a7353f0c0da9a838e69d5f \ sha256 581f7fc1bb95d5f088e1456e822cd47419f93b2b07087f45f7ba8b069bec1981 depends_build bin:ant:apache-ant \ port:apache-ivy depends_run port:antlr3 \ port:junit \ port:jline \ port:slf4j \ port:commons-cli \ port:commons-lang \ port:commons-codec \ port:jakarta-log4j \ port:google-guava set java_basepath ${prefix}/share/java set cassandra_destpath ${java_basepath}/${name}-${version} set mp_libs {antlr junit jline slf4j-api slf4j-log4j12 commons-cli \ commons-lang commons-codec jakarta-log4j \ google-guava } set dbdir ${prefix}/var/db/cassandra set logdir ${prefix}/var/log/cassandra if {${os.platform} eq "darwin" && ${os.major} > 8} { set cassandrauser _cassandra } else { set cassandrauser cassandra } add_users ${cassandrauser} group=${cassandrauser} realname=Cassandra\ Server use_configure no build.cmd ant build.target jar destroot { # create directories set cas_home ${destroot}${cassandra_destpath} set doc_dir ${destroot}${prefix}/share/doc/${name}-${version} xinstall -m 755 -d ${cas_home}/lib ${doc_dir} # move in docs eval move [glob ${worksrcpath}/*.txt] ${doc_dir}/ # fix cassandra include file move ${worksrcpath}/bin/cassandra.in.sh ${cas_home}/ reinplace "s|CASSANDRA_HOME=.*|CASSANDRA_HOME=${cassandra_destpath}|" ${cas_home}/cassandra.in.sh # install bin scripts eval delete [glob ${worksrcpath}/bin/*.bat] eval reinplace "s|/opt/cassandra/cassandra.in.sh|${cassandra_destpath}/cassandra.in.sh|" [glob ${worksrcpath}/bin/*] eval xinstall -m 755 [glob ${worksrcpath}/bin/*] ${destroot}${prefix}/bin # install jars xinstall -m 644 ${worksrcpath}/build/apache-${name}-${version}-SNAPSHOT.jar \ ${cas_home}/lib/${name}.jar xinstall -m 644 ${worksrcpath}/build/apache-${name}-thrift-${version}-SNAPSHOT.jar \ ${cas_home}/lib/${name}-thrift.jar eval xinstall -m 644 [glob ${worksrcpath}/lib/*.jar] ${cas_home}/lib/ # install conf, interface move ${worksrcpath}/conf ${worksrcpath}/interface ${cas_home} # update file storage location to be within Macports hierarchy eval reinplace "s|/var|${prefix}/var|g" [glob ${cas_home}/conf/*] reinplace "s|/var/lib/cassandra|/var/db/cassandra|g" ${cas_home}/conf/cassandra.yaml } post-destroot { xinstall -m 755 -o ${cassandrauser} -g ${cassandrauser} -d \ ${destroot}${logdir} \ ${destroot}${dbdir} destroot.keepdirs-append \ ${destroot}${dbdir} \ ${destroot}${logdir} } startupitem.create yes # memo: delete env setup when release merges in r104118 startupitem.executable sudo -u ${cassandrauser} env \ PATH=${prefix}/bin:${prefix}/sbin:/usr/bin:/bin:/usr/sbin:/sbin \ __CFPREFERENCES_AVOID_DAEMON=1 \ ${prefix}/bin/cassandra livecheck.type regex livecheck.url ${homepage}download/ livecheck.regex /apache-${name}-(\[0-9.\]+)-src${extract.suffix}