scripts/copy-latest.py (30 lines of code) (raw):
#
# 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.
#
# Script to copy over the latest "numbered" version to the build directory
# Must be called AFTER the website being built by "npm run install-build"
# It will create a new directory with the numbered version, e.g. 1.32.0.Final with the contents of the "latest" directory.
# We do this way because the GH Pages can't have redirection/rewrite rules applied like suggested on Antora pages: https://docs.antora.org/antora/latest/playbook/urls-redirect-facility/
# See JIRA: https://issues.redhat.com/browse/KOGITO-8408
import re
import shutil
from pathlib import Path
pattern = re.compile("(data-version=\")((\d+\.)(\d+\.)(\*|\d+))")
found = False
base_path = "build/site/serverlessworkflow"
index_file = Path(base_path + "/latest/index.html").resolve()
for i, line in enumerate(open(index_file)):
for match in re.finditer(pattern, line):
found = True
if len(match.groups()) > 2:
latest_version = match.groups()[1]
print("Found latest version " +
latest_version + ". Copying directory.")
dest_dir = Path(base_path + "/" + latest_version)
if not dest_dir.is_dir():
shutil.copytree(Path(base_path + "/latest").resolve(),
dest_dir.resolve())
else:
print("Directory with version " + latest_version +
" already exists. Skipping copy.")
else:
raise ValueError(
"Couldn't find a match for latest docs version. Matches found based on the current regexp: " + match)
break
if found:
break
if not found:
raise ValueError("Couldn't find a match for the latest docs version in the " +
index_file + ". Directory not copied.")