blob: cfbf970f2994abcac62b3bc222ffa152714483bd [file] [log] [blame]
// ------------------------------------------------------------------------------------------------
// Sling 'repolist' page - list of GitHub repositories generated from an XML file
// that our pom downloads.
// ------------------------------------------------------------------------------------------------
// Include common utilities
U = new includes.U(config)
layout 'layout/main.tpl', true,
projects: projects,
breadcrumbs : contents {
include template : 'breadcrumbs-brick.tpl'
},
tags : contents {
include template: 'tags-brick.tpl'
},
lastModified: contents {
include template : 'lastmodified-brick.tpl'
},
bodyContents: contents {
section(class:"wrap"){
yieldUnescaped U.processBody(content, config)
}
def filename = "${config.repolist_path}"
def file = new File(filename)
def repos = new XmlSlurper().parse(file)
def NOGROUP = "<NO GROUP SET>"
Set groups = []
// Get the groups
repos.'**'.findAll {
node ->
node.name() == 'project' }*.each() {
p ->
def group = p.attributes().groups
if(group) {
groups.add(group)
}
}
// Sort and add ungrouped projects to the end
groups=groups.toSorted()
groups.add(NOGROUP)
// List projects by group
groups.each() {
group ->
h2() {
yield("Group: ${group}")
}
newLine()
ul() {
repos.'**'.findAll {
node ->
node.name() == 'project' && (node.attributes().groups == group || group == NOGROUP && !node.attributes().hasProperty('groups'))
}*.each() {
p ->
li() {
a(href:"${config.sling_github_baseURL}${p.attributes().name}") {
yield("${p.attributes().path}")
}
}
newLine()
}
}
newLine()
}
}