| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| // Add "help" tasks which display plain text files under 'help' folder. |
| |
| configure(rootProject) { |
| def helpFiles = [ |
| ["Workflow", "help/workflow.txt", "Typical workflow commands."], |
| ["Ant", "help/ant.txt", "Ant-gradle migration help."], |
| ["Tests", "help/tests.txt", "Tests, filtering, beasting, etc."], |
| ["Jvms", "help/jvms.txt", "Using alternative or EA JVM toolchains."], |
| ["Deps", "help/dependencies.txt", "Declaring, inspecting and excluding dependencies."], |
| ["ForbiddenApis", "help/forbiddenApis.txt", "How to add/apply rules for forbidden APIs."], |
| ["LocalSettings", "help/localSettings.txt", "Local settings, overrides and build performance tweaks."], |
| ["Git", "help/git.txt", "Git assistance and guides."], |
| ["ValidateLogCalls", "help/validateLogCalls.txt", "How to use logging calls efficiently."], |
| ["IDEs", "help/IDEs.txt", "IDE support."], |
| ["Docker", "help/docker.txt", "Building Solr Docker images."], |
| ] |
| |
| helpFiles.each { section, path, sectionInfo -> |
| task "help${section}" { |
| group = 'Help (developer guides and hints)' |
| description = sectionInfo |
| doFirst { |
| println "\n" + rootProject.file(path).getText("UTF-8") |
| } |
| } |
| } |
| |
| help { |
| doLast { |
| println "" |
| println "This is an experimental Lucene/Solr gradle build. See some" |
| println "guidelines, ant-equivalent commands etc. under help/*; or type:" |
| println "" |
| helpFiles.each { section, path, sectionInfo -> |
| println String.format(Locale.ROOT, |
| " gradlew :help%-16s # %s", section, sectionInfo) |
| } |
| println "" |
| println "For the impatient, build the project with 'gradlew assemble' or 'gradlew dev' " |
| } |
| } |
| |
| task allHelpFilesExit() { |
| doFirst { |
| helpFiles.each { section, path, sectionInfo -> |
| if (!rootProject.file(path).exists()) { |
| throw new GradleException("Help file missing: ${path} (correct help.gradle)") |
| } |
| } |
| } |
| } |
| |
| check.dependsOn allHelpFilesExit |
| } |