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)