# -*- 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

PortSystem              1.0
PortGroup               github 1.0

github.setup            brona iproute2mac 1.5.4 v
revision                1
supported_archs         noarch
categories              net python
maintainers             {i0ntempest @i0ntempest} openmaintainer
license                 MIT

description             CLI wrapper for basic network utilites on Mac OS X inspired with iproute2 on Linux systems - ip command.
long_description        {*}${description} \
                        Provided functionality is limited and command output is not fully compatible with iproute2. \
                        Goal of this project is to make basic network configuration/debug tasks on Mac OS X easy \
                        for admins who already use Linux systems.

github.tarball_from     releases

checksums               rmd160  d507b86b866a6c99b2c2907725d6dede210ff198 \
                        sha256  9548ed9ead114a3a7095890c51e0e5b1d8ea1dd955692400e19fb97f1b6ad015 \
                        size    14339

pre-configure {
    if {![variant_isset python39] && ![variant_isset python310] && ![variant_isset python311] && ![variant_isset python312] && ![variant_isset python313]} {
        ui_error "${name} requires Python, please use a Python variant."
        return -code error
    }
}

use_configure no

build {}

destroot {
    xinstall -d ${destroot}${prefix}/libexec/${name}
    xinstall -m 755 {*}[glob ${worksrcpath}/src/*.py] ${destroot}${prefix}/libexec/${name}
    foreach cmd {ip bridge} {
        ln -s ${prefix}/libexec/${name}/${cmd}.py ${destroot}${prefix}/sbin/${cmd}
    }
    xinstall -d ${destroot}${prefix}/share/doc/${name}
    xinstall -m 644 -W ${worksrcpath} README.md LICENSE AUTHORS ${destroot}${prefix}/share/doc/${name}
}

proc python-depends {python_branch} {
    set python_version [string map {. ""} ${python_branch}]
    depends_run-append  port:python${python_version}
    post-patch {
        reinplace "s|#!/usr/bin/env python3|#!${prefix}/bin/python${python_branch}|" {*}[glob ${worksrcpath}/src/*.py]
    }
}

variant python313 conflicts python39 python310 python311 python312 description {Use Python 3.13 as interpreter} {
    set ::python_branch 3.13
    python-depends ${::python_branch}
}

variant python312 conflicts python39 python310 python311 python313 description {Use Python 3.12 as interpreter} {
    set ::python_branch 3.12
    python-depends ${::python_branch}
}

variant python311 conflicts python39 python310 python312 python313 description {Use Python 3.11 as interpreter} {
    set ::python_branch 3.11
    python-depends ${::python_branch}
}

variant python310 conflicts python39 python311 python312 python313 description {Use Python 3.10 as interpreter} {
    set ::python_branch 3.10
    python-depends ${::python_branch}
}

variant python39 conflicts python310 python311 python312 python313 description {Use Python 3.9 as interpreter} {
    set ::python_branch 3.9
    python-depends ${::python_branch}
}

if {![variant_isset python39] && ![variant_isset python310] && ![variant_isset python311] && ![variant_isset python312]} {
    default_variants +python313
}

variant mpsudo description {Use sudo command provided by MacPorts instead of the system} {
    depends_run-append  port:sudo
    post-patch {
        reinplace "s|/usr/bin/sudo|${prefix}/bin/sudo|g" ${worksrcpath}/src/iproute2mac.py
    }
}