# -*- 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           python 1.0
PortGroup           select 1.0

name                py-docutils
version             0.22.3
categories-append   textproc
license             public-domain BSD PSF-2.1.1
maintainers         {jmr @jmroot} alexnicksay.com:alex openmaintainer
description         A set of tools for processing plaintext documentation
long_description    Docutils is a set of tools for processing plaintext \
                    documentation into useful formats, such as HTML, XML, \
                    and LaTeX. Includes reStructuredText, the easy to read, \
                    easy to use, what-you-see-is-what-you-get plaintext \
                    markup language.
platforms           {darwin any}
supported_archs     noarch

homepage            https://docutils.sourceforge.io/

checksums           md5 98a6168e7f4719c9fd90184e88157656 \
                    rmd160 5c49efb77b21cf331a3148e336d2abeee29f2121 \
                    sha256 21486ae730e4ca9f622677b1412b879af1791efcfba517e4c6f60be543fc8cdd

python.versions     27 38 39 310 311 312 313 314

if {$subport ne $name} {
    depends_run         port:py${python.version}-roman

    switch ${python.version} {
        27 {
            version     0.18.1
            revision    0
            checksums   md5 ca5827e2432fd58f4c8d74a6591135de \
                        rmd160 a58063172b68280b6c13b7f4829bfceb9fd0e777 \
                        sha256 679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06
            depends_build   port:py${python.version}-setuptools
        }
        38 {
            version     0.20.1
            revision    0
            checksums   md5 93bcfe0065cf1d0b6a0bcabeca7a2335 \
                        rmd160 4e03b8fdc202abdb5bd5811a40bdea8647db25d2 \
                        sha256 f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b
        }
    }

    if {${python.version} >= 39} {
        python.pep517_backend   flit
        depends_run-append port:docutils_select

        post-extract {
            copy -force ${filespath}/docutils ${workpath}/${subport}
        }

        post-patch {
            reinplace \
                "s,@PYTHON_BRANCH@,${python.branch},g" \
                ${workpath}/${subport}
        }

        select.group    docutils
        select.file     ${workpath}/${subport}

        notes "
To make the Python ${python.branch} version of docutils the one that is run when\
you execute the commands without a version suffix, e.g. 'rst2man', run:

port select --set ${select.group} [file tail ${select.file}]
"
    } else {
        # we want e.g. *-2.7.py not *.py-2.7
        python.link_binaries no
        post-destroot {
            foreach f {rst2html rst2latex rst2man rst2odt rst2odt_prepstyles rst2pseudoxml rst2s5 rst2xml rstpep2html rst2xetex} {
                ln -s ${python.prefix}/bin/${f}.py ${destroot}${prefix}/bin/${f}-${python.branch}.py
            }
        }
    }

    livecheck.type  none
}
