org.openbakery.appledoc.AppledocTask.groovy Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xcode-plugin Show documentation
Show all versions of xcode-plugin Show documentation
XCode-Plugin is a plugin to allow custom XCode projects to build as generated by CMake
package org.openbakery.appledoc
import org.apache.commons.io.FileUtils
import org.gradle.api.InvalidUserDataException
import org.gradle.api.tasks.TaskAction
import org.openbakery.AbstractXcodeTask
import org.openbakery.CommandRunnerException
class AppledocTask extends AbstractXcodeTask {
AppledocTask() {
super()
this.description = "Runs the appledoc for the given project"
}
@TaskAction
def documentation() {
def appledocSettings = new File('AppledocSettings.plist')
if (!appledocSettings.exists()) {
throw new InvalidUserDataException("The AppledocSettings.plist is missing.")
}
def documentationDirectory = project.getFileResolver().withBaseDir(project.getBuildDir()).resolve("documentation")
if (!documentationDirectory.exists()) {
documentationDirectory.mkdirs()
}
def appledocCommand = new File(documentationDirectory, 'appledoc')
def zip = new File(documentationDirectory, 'appledoc.zip')
ant.get(src: 'https://github.com/tomaz/appledoc/releases/download/v2.2-963/appledoc.zip', dest: documentationDirectory, verbose:true)
ant.unzip(src: zip, dest:documentationDirectory)
ant.chmod(file: appledocCommand, perm:"+x")
def appledocOutput = new File(documentationDirectory, 'appledoc-output.txt')
commandRunner.setOutputFile(appledocOutput)
try {
commandRunner.run([appledocCommand.absolutePath, "--print-settings", "--output", documentationDirectory.absolutePath, "."])
} catch (CommandRunnerException ex) {
logger.error(FileUtils.readFileToString(appledocOutput))
throw ex
}
}
}