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

set ruby_versions   {3.1 3.2 3.3 3.4}
# Declare conflicting variants for each supported Ruby version
foreach v ${ruby_versions} {
    set v_nodot [string map {. {}} ${v}]
    set other_variants {}
    foreach ov ${ruby_versions} {
        if {${ov} ne ${v}} {
            lappend other_variants ruby[string map {. {}} ${ov}]
        }
    }
    variant ruby${v_nodot} conflicts {*}${other_variants} \
        description "Build with Ruby ${v}" {}
}

# Default to Ruby 3.3
if {![variant_isset ruby31] && ![variant_isset ruby32] && ![variant_isset ruby33] && ![variant_isset ruby34]} {
    default_variants +ruby33
}

# Determine selected Ruby version
foreach v ${ruby_versions} {
    if {[variant_isset ruby[string map {. {}} ${v}]]} {
        set ruby_ver ${v}
        break
    }
}

set ruby_ver_nodot  [string map {. {}} ${ruby_ver}]

ruby.setup          jekyll 4.4.1 gem {} rubygems ruby${ruby_ver_nodot}
name                jekyll

# Don't add the ruby version suffix to command line tools
ruby.link_binaries_suffix

categories          www
license             MIT
maintainers         {dports @drkp} openmaintainer
platforms           any
supported_archs     noarch
description         Simple, blog-aware, static site generator
long_description    Jekyll is a simple, blog-aware, static site generator \
                    perfect for personal, project, or organization sites. \
                    Think of it like a file-based CMS, without all the \
                    complexity.
homepage            https://jekyllrb.com
checksums           rmd160  652717ccab98e909d7d44d4f6fe8caa15c045bc7 \
                    sha256  4c1144d857a5b2b80d45b8cf5138289579a9f8136aadfa6dd684b31fe2bc18c1 \
                    size    128512

dist_subdir         ${name}

depends_run-append  port:rb${ruby_ver_nodot}-addressable \
                    port:rb${ruby_ver_nodot}-colorator \
                    port:rb${ruby_ver_nodot}-rake \
                    port:rb${ruby_ver_nodot}-em-websocket \
                    port:rb${ruby_ver_nodot}-i18n \
                    port:rb${ruby_ver_nodot}-jekyll-sass-converter \
                    port:rb${ruby_ver_nodot}-jekyll-watch \
                    port:rb${ruby_ver_nodot}-kramdown \
                    port:rb${ruby_ver_nodot}-kramdown-parser-gfm \
                    port:rb${ruby_ver_nodot}-liquid \
                    port:rb${ruby_ver_nodot}-mercenary \
                    port:rb${ruby_ver_nodot}-pathutil \
                    port:rb${ruby_ver_nodot}-rouge \
                    port:rb${ruby_ver_nodot}-safe_yaml \
                    port:rb${ruby_ver_nodot}-terminal-table \
                    port:rb${ruby_ver_nodot}-webrick
