website: better resources discovery

This commit is contained in:
Leonid Shalupov
2012-12-14 20:04:46 +04:00
parent f311f88b8d
commit de1c416859
2 changed files with 17 additions and 23 deletions
+3
View File
@@ -68,6 +68,9 @@
</executions>
<configuration>
<mainClass>org.jetbrains.kotlin.site.namespace</mainClass>
<arguments>
<argument>${basedir}</argument>
</arguments>
</configuration>
</plugin>
@@ -2,9 +2,11 @@ package org.jetbrains.kotlin.site
import java.io.File
class SiteGeneratorMain {
val srcDir = findTemplateDir()
val siteOutputDir = File(srcDir, "../../../target/site")
class SiteGeneratorMain(projectRoot: File) {
val srcDir = File(projectRoot, "src/main/templates")
val apiDocsDir = File(projectRoot, "../apidoc/target/site/apidocs")
val jsApiDocsDir = File(projectRoot, "../jsdoc/target/site/apidocs")
val siteOutputDir = File(projectRoot, "target/site")
val version = System.getProperty("project.version") ?: "SNAPSHOT"
val versionDir = if (version.contains("SNAPSHOT")) "snapshot" else version
@@ -15,14 +17,13 @@ class SiteGeneratorMain {
}
fun copyApiDocs(): Unit {
val apidocDir = File(siteOutputDir, "../../../apidoc/target/site/apidocs")
assertTrue(apidocDir.exists(), "Directory does not exist ${apidocDir.getCanonicalPath()}")
assertTrue(apiDocsDir.exists(), "Directory does not exist ${apiDocsDir.getCanonicalPath()}")
val outDir = File(siteOutputDir, "versions/$versionDir/apidocs")
println("Copying API docs to $outDir")
copyDocResources(outDir)
copyRecursive(apidocDir, outDir)
copyRecursive(apiDocsDir, outDir)
// now lets assert that the API docs generated everything
assertFilesExist(outDir, "Expected generate API docs are missing - API doc generation failure",
@@ -30,9 +31,9 @@ class SiteGeneratorMain {
}
fun copyJSApiDocs(): Unit {
val apidocDir = File(siteOutputDir, "../../../jsdoc/target/site/apidocs")
//assertTrue(apidocDir.exists(), "Directory does not exist ${apidocDir.getCanonicalPath()}")
if (!apidocDir.exists()) {
//assertTrue(jsApiDocsDir.exists(), "Directory does not exist ${jsApiDocsDir.getCanonicalPath()}")
if (!jsApiDocsDir.exists()) {
println("WARNING - no JS API docs available. Though they don't work right now so are optional :)")
return
}
@@ -42,7 +43,7 @@ class SiteGeneratorMain {
copyDocResources(outDir)
copyRecursive(apidocDir, outDir)
copyRecursive(jsApiDocsDir, outDir)
}
fun copyDocResources(outDir: File): Unit {
@@ -70,17 +71,6 @@ class SiteGeneratorMain {
}
}
fun findTemplateDir(): File {
val path = "src/main/templates"
for (p in listOf(".", "website", "docs/website", "libraries/docs/website")) {
val sourceDir = File(p, path)
if (sourceDir.exists()) {
return sourceDir
}
}
throw IllegalArgumentException("Could not find template directory: $path")
}
fun assertTrue(condition: Boolean, message: String): Unit {
if (!condition) {
throw RuntimeException(message);
@@ -89,9 +79,10 @@ class SiteGeneratorMain {
}
fun main(args : Array<String>) {
println("Current working directory: " + System.getProperty("user.dir"))
val basedir = File(args.get(0))
println("Basedir: $basedir")
val main = SiteGeneratorMain()
val main = SiteGeneratorMain(basedir)
main.generateSite()
main.copyApiDocs()
main.copyJSApiDocs()