blob: 64a83c75c64851225d31014c2d944e770ed84d17 [file] [log] [blame]
def fileCheck = { file, folder ->
def folderNames = new groovy.json.JsonSlurper().parseText(file.text).collect { it.foldername }
def folders = []
folder.eachDir {
folders << it.name
}
def disjunct = (folders + folderNames) - folders.intersect(folderNames)
def missingFromFolders = folderNames.intersect(disjunct)
def missingFromJson = folders.intersect(disjunct)
if (!missingFromFolders.empty || !missingFromJson.empty) {
StringBuilder missingString = new StringBuilder();
missingString.append("Missing From Folders\n")
for (String symbol : missingFromFolders) {
missingString.append(symbol);
missingString.append('\n');
}
missingString.append("\nMissing from JSON\n")
for (String symbol : missingFromJson) {
missingString.append(symbol);
missingString.append('\n');
}
throw new GradleException("Found missing items\n" + missingString.toString());
}
}
task checkTemplates(type: Task) {
doLast {
fileCheck(templateFile, templateDirectory)
}
}
task checkExamples(type: Task) {
doLast {
fileCheck(exampleFile, exampleDirectory)
}
}
task checkCommands(type: Task) {
doLast {
fileCheck(commandFile, commandDirectory)
}
}
check.dependsOn checkTemplates
check.dependsOn checkExamples
check.dependsOn checkCommands