summaryrefslogtreecommitdiffstats
path: root/common/asciidoc-scripts/src
diff options
context:
space:
mode:
Diffstat (limited to 'common/asciidoc-scripts/src')
-rw-r--r--common/asciidoc-scripts/src/main/groovy/io/fd/honeycomb/common/scripts/AsciiDocImgForwarder.groovy44
-rw-r--r--common/asciidoc-scripts/src/main/groovy/io/fd/honeycomb/common/scripts/ReadmeGenerator.groovy61
-rw-r--r--common/asciidoc-scripts/src/main/resources/readme/readmeDefaultContent3
3 files changed, 108 insertions, 0 deletions
diff --git a/common/asciidoc-scripts/src/main/groovy/io/fd/honeycomb/common/scripts/AsciiDocImgForwarder.groovy b/common/asciidoc-scripts/src/main/groovy/io/fd/honeycomb/common/scripts/AsciiDocImgForwarder.groovy
new file mode 100644
index 000000000..5bdf0cd32
--- /dev/null
+++ b/common/asciidoc-scripts/src/main/groovy/io/fd/honeycomb/common/scripts/AsciiDocImgForwarder.groovy
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2016 Cisco and/or its affiliates.
+ *
+ * Licensed 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.
+ */
+
+package io.fd.honeycomb.common.scripts
+
+import java.nio.file.Files
+import java.nio.file.Paths
+
+class AsciiDocImgForwarder {
+
+ static final def ADOC_FOLDER = "asciidoc"
+ static final def SITE_FOLDER = "site"
+ static final def PNG_EXTENSION = "png";
+
+ /**
+ * Copies generated images to site folder
+ * */
+ public static void copyGeneratedImages(project, properties, log){
+
+ def sourcePath = Paths.get(project.basedir.toString(), ADOC_FOLDER)
+ def destinationPathString = Paths.get(project.build.directory.toString(), SITE_FOLDER).toString()
+
+ log.info "Copying generated asciidoc images from ${sourcePath} to ${destinationPathString}"
+ Files.walk(sourcePath)
+ .filter({ path -> path.toString().endsWith(PNG_EXTENSION) })
+ .forEach({ sourceFilePath ->
+ def targetFilePath = Paths.get(destinationPathString, sourceFilePath.getFileName().toString())
+ log.info "Copying ${sourceFilePath} to ${targetFilePath}"
+ Files.copy(sourceFilePath, targetFilePath) })
+ }
+}
diff --git a/common/asciidoc-scripts/src/main/groovy/io/fd/honeycomb/common/scripts/ReadmeGenerator.groovy b/common/asciidoc-scripts/src/main/groovy/io/fd/honeycomb/common/scripts/ReadmeGenerator.groovy
new file mode 100644
index 000000000..6bab620c7
--- /dev/null
+++ b/common/asciidoc-scripts/src/main/groovy/io/fd/honeycomb/common/scripts/ReadmeGenerator.groovy
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2017 Cisco and/or its affiliates.
+ *
+ * Licensed 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.
+ */
+
+package io.fd.honeycomb.common.scripts
+
+import groovy.text.SimpleTemplateEngine
+
+import java.nio.file.Files
+import java.nio.file.Paths
+
+/**
+ * Check/generate and repair Readme.adoc for a honeycomb module.
+ */
+class ReadmeGenerator {
+
+ static final def DEFAULT_README = ReadmeGenerator.getResource("/readme/readmeDefaultContent").text
+
+ static final def ADOC_FOLDER = "asciidoc"
+ static final def README = "Readme"
+ static final def README_FILE = "${README}.adoc"
+ static final def README_HTML = "${README}.html"
+ static final def SITE_FOLDER = "site"
+ static final def INDEX_HTML = "index.html"
+
+ public static void checkReadme(project, properties, log) {
+ log.info "Checking ${ADOC_FOLDER}/${README_FILE}"
+ def asciidoc = Paths.get(project.getBasedir().toString(), ADOC_FOLDER)
+ def readme = Paths.get(asciidoc.toString(), README_FILE)
+ if (!Files.exists(readme)) {
+ log.info "Generating ${readme}"
+ Files.createDirectories(asciidoc)
+ Files.createFile(readme)
+ readme.toFile().text = new SimpleTemplateEngine().createTemplate(DEFAULT_README)
+ .make(["artifactId": project.artifactId])
+ .toString()
+ }
+ }
+
+ public static void fixSite(project, properties, log) {
+ def index = Paths.get(project.build.directory.toString(), SITE_FOLDER, INDEX_HTML)
+ if (Files.exists(index)) {
+ log.info "Fixing links in generated site"
+ def html = index.toFile().text
+ log.info "Fixing ${ADOC_FOLDER} ${README_HTML} link"
+ index.toFile().text = html.replaceAll("[./]*${README}\\.html", README_HTML)
+ }
+ }
+}
diff --git a/common/asciidoc-scripts/src/main/resources/readme/readmeDefaultContent b/common/asciidoc-scripts/src/main/resources/readme/readmeDefaultContent
new file mode 100644
index 000000000..b50837275
--- /dev/null
+++ b/common/asciidoc-scripts/src/main/resources/readme/readmeDefaultContent
@@ -0,0 +1,3 @@
+= ${artifactId}
+
+Overview of ${artifactId} \ No newline at end of file