# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4

PortSystem          1.0

name                metasploit3
conflicts           metasploit2
version             3.0
revision            4
categories          security
maintainers         nomaintainer
homepage            https://metasploit.com/
platforms           darwin

description         Tools and information for security research and pentesting
long_description    The Metasploit Project goal is to provide useful information to people \
                    who perform penetration testing, IDS signature development, and exploit \
                    research. This framework was created to fill the gaps in the information \
                    publicly available on various exploitation techniques and to create a \
                    useful resource for exploit developers. The tools and information are \
                    provided for legal security research and testing purposes only.

# New versions are probably available under
# https://github.com/rapid7/metasploit-framework
#master_sites       http://downloads.metasploit.com/data/releases/
master_sites        macports_distfiles

distname            framework-${version}

checksums           rmd160  849305ffcf0ccbdf16d3dac8d7ab20ac745fbcd8 \
                    sha256  cb27df6dafe7b2d1c2d2174000afd07965cdc09e759e8cda5147cfc58e445251

depends_run         port:ruby \
                    port:rb-rails \
                    port:readline


patchfiles          patch-data-msfweb-config-environment.rb \
                    patch-msfcli \
                    patch-msfconsole \
                    patch-msfd \
                    patch-msfencode \
                    patch-msfgui \
                    patch-msfopcode \
                    patch-msfpayload \
                    patch-msfpescan \
                    patch-msfweb \
                    patch-tools-module_license.rb \
                    patch-tools-msf_irb_shell.rb

use_configure       no

build {
    ## remove the .svn/ directories, no need to move them around
    system "cd ${worksrcpath} && find . -type d -name '\.svn' | xargs /bin/rm -rf"

    ## GUI msfgui not available, port:rb-gtk2 does not work
    file delete ${worksrcpath}/msfgui
}

destroot {
    set metasploitTargetDir "libexec/${name}"
    xinstall -d -m 755 ${destroot}${prefix}/${metasploitTargetDir}
    foreach file [glob -directory ${workpath}/${worksrcdir} *] {
        file copy ${file} ${destroot}${prefix}/${metasploitTargetDir}
    }
    foreach file [glob -directory ${destroot}${prefix}/${metasploitTargetDir} msf*] {
        set useFile [file tail ${file}]
## 'file link' doesn't play nice, it doesn't (seem) to want to do relative paths...
##              file link -symbolic ${useFile} ../${metasploitTargetDir}/${useFile}
## so use 'system "ln -s ..."' instead.
        system "cd ${destroot}${prefix}/sbin && /bin/ln -s ../${metasploitTargetDir}/${useFile} ${useFile}"
    }
}