This is an automated email from the ASF dual-hosted git repository.

wave pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/openjpa-site.git

commit 33d73a2d7fe682a5741116457959adb61c3cc759
Author: Dave Fisher <d...@davefisher.tech>
AuthorDate: Mon Jun 21 12:03:12 2021 -0700

    Use asfcopy plugin
---
 pelicanconf.py           |  7 +++--
 theme/plugins/asfcopy.py | 66 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 71 insertions(+), 2 deletions(-)

diff --git a/pelicanconf.py b/pelicanconf.py
index 25485de..9dab836 100644
--- a/pelicanconf.py
+++ b/pelicanconf.py
@@ -70,7 +70,7 @@ READERS = {'html': None}
 ARTICLE_PATHS = ['articles']
 
 # ignore README.md files in the content tree and the interviews and include 
folders.
-IGNORE_FILES = ['README.md']
+IGNORE_FILES = ['README.md', 'docs', 'builds']
 
 # No translations
 PAGE_TRANSLATION_ID = None
@@ -97,7 +97,7 @@ THEME = './theme/apache'
 PLUGIN_PATHS = ['./theme/plugins']
 # PLUGINS = ['asfgenid', 'asfdata', 'pelican-gfm', 'asfreader']
 # We are using the default plugin - 'pelican-gfm' which is installed by the 
build
-PLUGINS = ['asfgenid', 'pelican-gfm']
+PLUGINS = ['asfgenid', 'pelican-gfm', 'asfcopy']
 
 # Lifecycle and plugins:
 # (1) Initialization:
@@ -134,6 +134,9 @@ ASF_GENID = {
     'debug': False
 }
 
+# Directories to be copied by asfcopy plugin outside of other Pelican process
+ASF_COPY = ['builds', 'docs']
+
 # Sitemap Generator
 # SITEMAP = {
 #    "exclude": ["tag/", "category/"],
diff --git a/theme/plugins/asfcopy.py b/theme/plugins/asfcopy.py
new file mode 100644
index 0000000..e76e75e
--- /dev/null
+++ b/theme/plugins/asfcopy.py
@@ -0,0 +1,66 @@
+#!/usr/bin/python -B
+# 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.
+#
+#
+# asfreader.py -- Pelican plugin that processes ezt template Markdown through 
ezt and  then GitHub Flavored Markdown.
+#
+
+import sys
+import io
+import shutil
+import os
+import traceback
+
+import re
+import ezt
+
+import pelican.plugins.signals
+import pelican.readers
+import pelican.settings
+
+
+# copy trees from PATH to OUTPUT_PATH
+def copy_trees(pel_ob):
+    print('-----\nasfcopy')
+
+    output_path = pel_ob.settings.get('OUTPUT_PATH')
+    path = pel_ob.settings.get('PATH')
+    asf_copy = pel_ob.settings.get('ASF_COPY')
+    if asf_copy:
+        for tree in asf_copy:
+            src = os.path.join(path, tree)
+            dst = os.path.join(output_path, tree)
+            print(f'{src} --> {dst}')
+            shutil.copytree(src, dst)
+    else:
+        print("Nothing to copy")
+
+
+def tb_finalized(pel_ob):
+    """ Print any exception, before Pelican chews it into nothingness."""
+    try:
+        copy_trees(pel_ob)
+    except Exception:
+        print('-----', file=sys.stderr)
+        traceback.print_exc()
+        # exceptions here stop the build
+        raise
+
+
+def register():
+    pelican.plugins.signals.finalized.connect(tb_finalized)

Reply via email to