# -*- 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 68586 2010-06-07 01:16:15Z snc@macports.org $

PortSystem          1.0

name                depot_tools
version             49028
categories          devel
maintainers         snc openmaintainer
description         Manages interaction with the Chromium development process
long_description    ${description}. Contains gcl, gclient, and hammer.
license             multiple
homepage            http://dev.chromium.org/Home

platforms           darwin
depends_build       port:git-core

variant python25 {
    depends_run-append  port:py25-socket-ssl
}

variant python26 {
    depends_run-append  port:python26
}

variant python27 {
    depends_run-append  port:python27
}

fetch.type          svn
svn.url             http://src.chromium.org/svn/trunk/tools/depot_tools
svn.revision        ${version}
worksrcdir          ${name}

patch {
    if {[variant_isset python25]} {
        foreach script [glob ${worksrcpath}/*.py] {
            reinplace s|/usr/bin/python|${prefix}/bin/python2.5|g ${script}
        }
        reinplace s|exec\ python|exec\ python2.5|g ${worksrcpath}/drover
        reinplace s|exec\ python|exec\ python2.5|g ${worksrcpath}/gcl
        reinplace s|exec\ python|exec\ python2.5|g ${worksrcpath}/gclient
        reinplace s|exec\ python|exec\ python2.5|g ${worksrcpath}/hammer
    }
    if {[variant_isset python26]} {
        foreach script [glob ${worksrcpath}/*.py] {
            reinplace s|/usr/bin/python|${prefix}/bin/python2.6|g ${script}
        }
        reinplace s|exec\ python|exec\ python2.6|g ${worksrcpath}/drover
        reinplace s|exec\ python|exec\ python2.6|g ${worksrcpath}/gcl
        reinplace s|exec\ python|exec\ python2.6|g ${worksrcpath}/gclient
        reinplace s|exec\ python|exec\ python2.6|g ${worksrcpath}/hammer
    }
    if {[variant_isset python27]} {
        foreach script [glob ${worksrcpath}/*.py] {
            reinplace s|/usr/bin/python|${prefix}/bin/python2.7|g ${script}
        }
        reinplace s|exec\ python|exec\ python2.7|g ${worksrcpath}/drover
        reinplace s|exec\ python|exec\ python2.7|g ${worksrcpath}/gcl
        reinplace s|exec\ python|exec\ python2.7|g ${worksrcpath}/gclient
        reinplace s|exec\ python|exec\ python2.7|g ${worksrcpath}/hammer
    }
}

use_configure       no

build {
    if {![file exists ${prefix}/libexec/git-core/git-svn]} {
        return -code error "Git must be installed with +svn variant"
    }
    system "cd ${worksrcpath} && ./gclient"
}

destroot {
    xinstall -d ${destroot}${prefix}/share/doc/${name}
    xinstall -m 644 ${worksrcpath}/LICENSE ${destroot}${prefix}/share/doc/${name}
    eval xinstall -m 644 [glob ${worksrcpath}/README*] ${destroot}${prefix}/share/doc/${name}

    eval xinstall -m 755 [glob ${worksrcpath}/*.py] ${destroot}${prefix}/bin
    xinstall -m 755 -W ${worksrcpath} create-chromium-git-src drover gcl \
                    gclient git-cl git-cl-upload-hook git-gs git-try hammer \
                    weekly wtf ${destroot}${prefix}/bin

    if {[variant_isset python25]} {
        xinstall -d ${frameworks_dir}/Python.framework/Versions/2.5/bin/third_party/pymox
        xinstall -d ${frameworks_dir}/Python.framework/Versions/2.5/bin/third_party/repo
        xinstall -d ${frameworks_dir}/Python.framework/Versions/2.5/bin/third_party/simplejson
        eval xinstall -m 755 [glob ${worksrcpath}/third_party/*.py] ${frameworks_dir}/Python.framework/Versions/2.5/bin/third_party
        eval xinstall -m 755 [glob ${worksrcpath}/third_party/pymox/*] ${frameworks_dir}/Python.framework/Versions/2.5/bin/third_party/pymox
        eval xinstall -m 755 [glob ${worksrcpath}/third_party/repo/*] ${frameworks_dir}/Python.framework/Versions/2.5/bin/third_party/repo
        eval xinstall -m 755 [glob ${worksrcpath}/third_party/simplejson/*] ${frameworks_dir}/Python.framework/Versions/2.5/bin/third_party/simplejson
        ln -s ${frameworks_dir}/Python.framework/Versions/2.5/bin/third_party ${destroot}${prefix}/bin
    }

    if {[variant_isset python26]} {
        xinstall -d ${frameworks_dir}/Python.framework/Versions/2.6/bin/third_party/pymox
        xinstall -d ${frameworks_dir}/Python.framework/Versions/2.6/bin/third_party/repo
        xinstall -d ${frameworks_dir}/Python.framework/Versions/2.6/bin/third_party/simplejson
        eval xinstall -m 755 [glob ${worksrcpath}/third_party/*.py] ${frameworks_dir}/Python.framework/Versions/2.6/bin/third_party
        eval xinstall -m 755 [glob ${worksrcpath}/third_party/pymox/*] ${frameworks_dir}/Python.framework/Versions/2.6/bin/third_party/pymox
        eval xinstall -m 755 [glob ${worksrcpath}/third_party/repo/*] ${frameworks_dir}/Python.framework/Versions/2.6/bin/third_party/repo
        eval xinstall -m 755 [glob ${worksrcpath}/third_party/simplejson/*] ${frameworks_dir}/Python.framework/Versions/2.6/bin/third_party/simplejson
        ln -s ${frameworks_dir}/Python.framework/Versions/2.6/bin/third_party ${destroot}${prefix}/bin
    }

    if {[variant_isset python27]} {
        xinstall -d ${frameworks_dir}/Python.framework/Versions/2.7/bin/third_party/pymox
        xinstall -d ${frameworks_dir}/Python.framework/Versions/2.7/bin/third_party/repo
        xinstall -d ${frameworks_dir}/Python.framework/Versions/2.7/bin/third_party/simplejson
        eval xinstall -m 755 [glob ${worksrcpath}/third_party/*.py] ${frameworks_dir}/Python.framework/Versions/2.7/bin/third_party
        eval xinstall -m 755 [glob ${worksrcpath}/third_party/pymox/*] ${frameworks_dir}/Python.framework/Versions/2.7/bin/third_party/pymox
        eval xinstall -m 755 [glob ${worksrcpath}/third_party/repo/*] ${frameworks_dir}/Python.framework/Versions/2.7/bin/third_party/repo
        eval xinstall -m 755 [glob ${worksrcpath}/third_party/simplejson/*] ${frameworks_dir}/Python.framework/Versions/2.7/bin/third_party/simplejson
        ln -s ${frameworks_dir}/Python.framework/Versions/2.7/bin/third_party ${destroot}${prefix}/bin
    }
}

if {![variant_isset python25] && ![variant_isset python26] && ![variant_isset python27]} {
    default_variants +python26
}

livecheck.type      regex
livecheck.url       ${svn.url}
livecheck.regex     svn - Revision (\\d+):
