# -*- coding: utf-8; mode: tcl; tab-width: 4; truncate-lines: t; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:et:sw=4:ts=4:sts=4
# $Id: Portfile 62211 2009-12-31 21:36:31Z ryandesign@macports.org $

PortSystem          1.0

name                murmur
version             1.1.8
categories          net audio
license             GPL
maintainers         snc openmaintainer
description         server for mumble - low latency voice chat for gaming
long_description \
    Server component of Mumble - an open source, low-latency, high quality \
    voice chat software primarily intended for use while gaming.

homepage            http://mumble.sourceforge.net/
platforms           macosx

master_sites        sourceforge:mumble
checksums           md5    a7da012922d39b87c45d9f481d4b5efb \
                    sha1   83b5ef771b6801953290ee184f1590686e831b8c \
                    rmd160 d2d05993b38749f30ed67b8b92a22ef236dc7cf1
distname            mumble-${version}

#livecheck.type      regex
#livecheck.url       ${homepage}
livecheck.regex     "&#38; Murmur (\\d+\\.\\d+(\\.\\d+))"

depends_lib \
    path:bin/qmake-mac:qt4-mac \
    port:openssl

depends_build \
    port:boost

configure.cmd       qmake-mac
configure.pre_args  CONFIG-=app_bundle CONFIG+=\"
configure.post_args \"
configure.args      release no-universal no-client no-ice

variant universal {
    configure.args-delete no-universal
}

variant ice description "Enable ice support" {
    configure.args-delete no-ice
    depends_lib-append port:ice-cpp
}

startupitem.create  yes
startupitem.type    launchd
startupitem.name    Murmur
startupitem.start   "${prefix}/sbin/murmurd -ini ${prefix}/etc/murmur/murmur.ini"
startupitem.stop    "kill -TERM `cat ${prefix}/var/run/murmur/murmur.pid`"
startupitem.pidfile auto "${prefix}/var/run/murmur/murmur.pid"

build {
    system "cd ${worksrcpath} && make"
}

destroot {
    addgroup murmur
    adduser murmur gid=[existsgroup murmur] realname=Murmur\ -\ Mumble\ Voice\ Chat

    set dp      ${destroot}/${prefix}
    set w       ${worksrcpath}

    set logdir  ${dp}/var/log/murmur/
    set dbdir   ${dp}/var/lib/murmur/
    set piddir  ${dp}/var/run/murmur/

    xinstall -m 740 -o murmur -g murmur -d \
        ${logdir} \
        ${dbdir} \
        ${piddir}

    destroot.keepdirs-append \
        ${logdir} \
        ${dbdir} \
        ${piddir}

    file mkdir ${dp}/etc/murmur/
    file mkdir ${dp}/sbin/
    file mkdir ${dp}/etc/dbus-1/system.d/

    file copy ${w}/release/murmurd ${dp}/sbin/murmurd

    set conf ${dp}/etc/murmur/murmur.ini
    file copy ${w}/scripts/murmur.ini.system ${conf}
    system "sed -i '' -e 's,database=.*,database=${prefix}/var/lib/murmur/murmur.sqlite,' ${conf}"
    system "sed -i '' -e 's,pidfile=.*,pidfile=${prefix}/var/run/murmur/murmur.pid,' ${conf}"
    system "sed -i '' -e 's,logfile=.*','logfile=${prefix}/var/log/murmur/murmur.log,' ${conf}"

    if {![variant_isset ice]} {
        # This change is made only to avoid confusion. Murmur ignores
        # the ice= config option when built without Ice support.
        system "sed -i -e 's,ice=,\#ice=,' ${destroot}/${prefix}/etc/murmur/murmur.ini"
    }

    set dbusservice ${dp}/etc/dbus-1/system.d/murmur.conf
    file copy ${w}/scripts/murmur.conf ${dbusservice}
    system "sed -i '' -e 's,user=.*\",user=\"murmur\",' ${dbusservice}"
}

pre-install {
    set plist ${destroot}/${prefix}/etc/LaunchDaemons/org.macports.Murmur/org.macports.Murmur.plist
    system "sed -i '' -e 's,</dict>,<key>UserName</key><string>murmur</string></dict>,' ${plist}"
}

post-install {
    ui_msg ""
    ui_msg "***************************************************************"
    ui_msg "* To set up a password for the SuperUser user on your Murmur"
    ui_msg "* server, execute:"
    ui_msg "*"
    ui_msg "*   ${prefix}/sbin/murmurd -ini ${prefix}/etc/murmur/murmur.ini -supw \[password\]"
    ui_msg "*"
    ui_msg "* In case you want to interface with a different database than"
    ui_msg "* sqlite, then take a look at the +psql and +mysql5 variants of"
    ui_msg "* qt4-mac."
    ui_msg "*"
    ui_msg "***************************************************************"
    ui_msg ""
}
