#%Module
module-forbid tag/1.0 tag/2.0 tag/3.0
module-virtual tag/2.0 ./1.0
module-alias tag/3.0 tag/1.0

if {[versioncmp $tcl_version 8.5] > -1} {
    set tomorrow [clock format [expr {[clock seconds]+86400}] -format %Y-%m-%d]
    module-forbid --after $tomorrow tag/4.0
}

if {[info exists env(TESTSUITE_MODULE_TAG_ERR1)]} {
    module-tag
}
if {[info exists env(TESTSUITE_MODULE_TAG_ERR2)]} {
    module-tag foo
}
if {[info exists env(TESTSUITE_MODULE_TAG_ERR3)]} {
    module-tag --foo foo tag/5.0
}
if {[info exists env(TESTSUITE_MODULE_TAG_ERR4)]} {
    module-tag --before 2020-11-01 foo tag/5.0
}
if {[info exists env(TESTSUITE_MODULE_TAG_ERR5)]} {
    module-tag --after 2020-11-01 foo tag/5.0
}
if {[info exists env(TESTSUITE_MODULE_TAG_ERR6)]} {
    module-tag loaded tag/5.0
}
if {[info exists env(TESTSUITE_MODULE_TAG_ERR7)]} {
    module-tag auto-loaded tag/5.0
}
if {[info exists env(TESTSUITE_MODULE_TAG_ERR8)]} {
    module-tag forbidden tag/5.0
}
if {[info exists env(TESTSUITE_MODULE_TAG_ERR9)]} {
    module-tag nearly-forbidden tag/5.0
}
if {[info exists env(TESTSUITE_MODULE_TAG_ERR10)]} {
    module-tag hidden tag/5.0
}
if {[info exists env(TESTSUITE_MODULE_TAG_ERR11)]} {
    module-tag hidden-loaded tag/5.0
}

if {[info exists env(TESTSUITE_MODULE_TAG_SET1)]} {
    module-tag foo tag/5.0 tag/6.0
}
if {[info exists env(TESTSUITE_MODULE_TAG_SET2)]} {
    module-tag foo tag@5.0 tag@6.0
}
if {[info exists env(TESTSUITE_MODULE_TAG_SET3)]} {
    module-tag foo tag @5.0 tag @6.0
}
if {[info exists env(TESTSUITE_MODULE_TAG_SET4)]} {
    module-tag foo tag @5.0 tag @6.0
    module-tag BaR tag@5:6
}
if {[info exists env(TESTSUITE_MODULE_TAG_SET5)]} {
    module-tag --not-user [module-info username] foo tag/5.0 tag/6.0
}
if {[info exists env(TESTSUITE_MODULE_TAG_SET6)]} {
    module-tag --not-user unkuser foo tag/5.0 tag/6.0
}
if {[info exists env(TESTSUITE_MODULE_TAG_SET7)]} {
    module-tag --not-group [module-info usergroups] foo tag/5.0 tag/6.0
}
if {[info exists env(TESTSUITE_MODULE_TAG_SET8)]} {
    module-tag --not-group unkgrp foo tag/5.0 tag/6.0
}

# for sgr tests in 70/322
if {[info exists env(TESTSUITE_MODULE_TAG_SET9)]} {
    module-tag foo tag/5.0 tag/3.0 tag/6.0
    module-tag bar tag/5.0 tag/3.0 tag/6.0
    module-version tag/3.0 default
    module-hide tag/6.0
}
if {[info exists env(TESTSUITE_MODULE_TAG_SET10)]} {
    module-virtual tag/tagtag ./1.0
    module-tag A tag/tagtag
    module-tag B tag/tagtag
    module-tag C tag/tagtag
    module-tag D tag/tagtag
    module-tag E tag/tagtag
    module-tag F tag/tagtag
    module-tag G tag/tagtag
    module-tag H tag/tagtag
    module-tag I tag/tagtag
    module-tag J tag/tagtag
}
if {[info exists env(TESTSUITE_MODULE_TAG_SET11)]} {
    module-virtual tag/tagtag ./1.0
    module-tag A tag/tagtag
    module-tag B tag/tagtag
    module-tag C tag/tagtag
    module-tag D tag/tagtag
    module-tag E tag/tagtag
    module-tag F tag/tagtag
    module-tag G tag/tagtag
    module-tag H tag/tagtag
    module-tag I tag/tagtag
    module-tag J tag/tagtag
    module-tag K tag/tagtag
}
if {[info exists env(TESTSUITE_MODULE_TAG_SET12)]} {
    module-virtual tag/tagtag ./1.0
    module-tag A tag/tagtag
    module-tag B tag/tagtag
    module-tag C tag/tagtag
    module-tag D tag/tagtag
    module-tag E tag/tagtag
    module-tag F tag/tagtag
    module-tag G tag/tagtag
    module-tag H tag/tagtag
    module-tag I tag/tagtag
    module-tag J tag/tagtag
    module-tag LoO tag/tagtag
    module-tag K tag/tagtag
}
if {[info exists env(TESTSUITE_MODULE_TAG_SET13)]} {
    module-hide --soft --hidden-loaded tag/5.0
}
if {[info exists env(TESTSUITE_MODULE_TAG_SET14)]} {
    module-hide --hidden-loaded tag/5.0
}
