summaryrefslogtreecommitdiffstats
path: root/common/asciidoc-scripts
diff options
context:
space:
mode:
authorJan Srnicek <jsrnicek@cisco.com>2017-10-09 08:58:41 +0200
committerMarek Gradzki <mgradzki@cisco.com>2017-10-09 15:44:26 +0000
commitf5e347768e9503285c41346c646351c2bd3e11f5 (patch)
treef8be45283767e4f773f9cfea601e2e0d63c8c14a /common/asciidoc-scripts
parent2bca3b4a54e1b0a5206c7be14262e35753700d13 (diff)
HONEYCOMB-393 - Introduce asciidoc-scripts && scripts-parent
Change-Id: I15032951c52d25a3805c0348c8f400a935174eef Signed-off-by: Jan Srnicek <jsrnicek@cisco.com>
Diffstat (limited to 'common/asciidoc-scripts')
-rw-r--r--common/asciidoc-scripts/pom.xml41
-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
4 files changed, 149 insertions, 0 deletions
diff --git a/common/asciidoc-scripts/pom.xml b/common/asciidoc-scripts/pom.xml
new file mode 100644
index 000000000..6b276f4a7
--- /dev/null
+++ b/common/asciidoc-scripts/pom.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <groupId>io.fd.honeycomb.scripts</groupId>
+ <artifactId>scripts-parent</artifactId>
+ <version>1.18.01-SNAPSHOT</version>
+ <relativePath>../scripts-parent</relativePath>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>io.fd.honeycomb.doc</groupId>
+ <artifactId>asciidoc-scripts</artifactId>
+ <version>1.18.01-SNAPSHOT</version>
+ <name>${project.artifactId}</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.groovy</groupId>
+ <artifactId>groovy-all</artifactId>
+ </dependency>
+ </dependencies>
+</project> \ No newline at end of file
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