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

name                python3_select
version             0.1
revision            0
categories          sysutils
supported_archs     noarch
configure.cxx_stdlib
license             BSD
maintainers         nomaintainer

description         Common files for selecting default Python 3 version
long_description    This port installs files that allow 'port select' \
                    to create links to the preferred default version \
                    of Python 3.
homepage            https://www.macports.org/

distfiles
use_configure       no
build               {}
destroot            {}

# Documentation for Python 3 ports:
#   PortGroup       select 1.0
#   set pythonNoDot python[string map {. {}} $branch]
#   select.entries  [list python3 python3-$pythonNoDot $pythonNoDot]

if {$subport eq $name} {
    select.entries      {python3 base} \
                        {python3 none}

    platform darwin {
        set apple_pythons [
            if {${os.major} == 19} {
                list python37-apple \
                     python38-apple
            } elseif {${os.major} == 20} {
                list python38-apple
            }
        ]
        foreach python $apple_pythons {
            select.entries-append [list python3 {*}$python]
        }
    }
}

foreach p {38 39 310 311 312 313 314 315} {
    subport python3_select-${p} {
        set pyver $p
    }
}
if {$subport ne $name} {
    revision    1
    platforms   any
    depends_run port:python3_select
    select.entries  [list python3 python${pyver} python${pyver}]
    pre-activate {
        if {[file exists ${prefix}/etc/select/python3/python${pyver}]} {
            set owner [registry_file_registered ${prefix}/etc/select/python3/python${pyver}]
            if {[string match python${pyver}* $owner]} {
                registry_deactivate_composite $owner "" [list ports_nodepcheck 1]
            }
        }
    }
}

livecheck.type     none
