Skip to content
Snippets Groups Projects
Verified Commit ce213dff authored by Timm Fitschen's avatar Timm Fitschen
Browse files

WIP: script for merging xsl files into one

parent 9e2d354d
No related branches found
No related tags found
No related merge requests found
...@@ -49,9 +49,9 @@ LIBS_SUBDIRS = $(addprefix $(LIBS_DIR)/, js css fonts) ...@@ -49,9 +49,9 @@ LIBS_SUBDIRS = $(addprefix $(LIBS_DIR)/, js css fonts)
ALL: install ALL: install
install: clean cp-src cp-ext cp-conf $(addprefix $(PUBLIC_DIR)/, $(LIBS)) build_properties install: clean cp-src cp-ext cp-conf $(addprefix $(PUBLIC_DIR)/, $(LIBS)) build_properties merge_xsl
test: clean cp-src cp-ext cp-ext-test cp-conf $(addprefix $(PUBLIC_DIR)/, $(TEST_LIBS)) build_properties test: clean cp-src cp-ext cp-ext-test cp-conf $(addprefix $(PUBLIC_DIR)/, $(TEST_LIBS)) build_properties merge_xsl
@for f in $(shell find $(TEST_EXT_DIR) -type f -iname *.js) ; do \ @for f in $(shell find $(TEST_EXT_DIR) -type f -iname *.js) ; do \
sed -i "/EXTENSIONS/a \<script src=\"$${f#$(TEST_EXT_DIR)/}\" ></script>" $(PUBLIC_DIR)/index.html ; \ sed -i "/EXTENSIONS/a \<script src=\"$${f#$(TEST_EXT_DIR)/}\" ></script>" $(PUBLIC_DIR)/index.html ; \
echo include $$f; \ echo include $$f; \
...@@ -61,6 +61,9 @@ test: clean cp-src cp-ext cp-ext-test cp-conf $(addprefix $(PUBLIC_DIR)/, $(TEST ...@@ -61,6 +61,9 @@ test: clean cp-src cp-ext cp-ext-test cp-conf $(addprefix $(PUBLIC_DIR)/, $(TEST
echo include $$f; \ echo include $$f; \
done done
merge_xsl:
misc/merge_xsl.sh
build_properties: build_properties:
@set -a -e ; \ @set -a -e ; \
for f in $$(ls build.properties.d/) ; do source "build.properties.d/$$f" ; done ; \ for f in $$(ls build.properties.d/) ; do source "build.properties.d/$$f" ; done ; \
......
#!/bin/bash
#
# ** header v3.0
# This file is a part of the CaosDB Project.
#
# Copyright (C) 2020 IndiScale GmbH
# Copyright (C) 2020 Timm Fitschen (t.fitschen@indiscale.com)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# ** end header
# This file can be used to merge xsl files together. It replaces include
# directives in the webcaosdb.xsl with the content of the included xsl file,
# resulting in one, big(ish) stand-alone xsl file.
#
# The resulting file can be tested (least for syntax) with
# `xsltproc public/webcaosdb.xsl test/core/xml/test_case_preview_entities.xml`.
SOURCE_DIR=public/
MERGE="xsl/footer.xsl xsl/filesystem.xsl xsl/entity.xsl xsl/query.xsl xsl/messages.xsl xsl/navbar.xsl xsl/main.xsl xsl/welcome.xsl xsl/common.xsl"
TARGET=public/webcaosdb.xsl
function _merge () {
_HREF=$1
_SOURCE=$2
_TARGET=$3
echo "merging ${_SOURCE} into ${_TARGET} by replacing xsl:include directive with href=${_HREF} by the content of ${_SOURCE}."
# inject bash-style env-var name into xsl
_PLACEHOLDER=" <!-- COPIED FROM ${_HREF} (START)-->\n \$\{_CONTENT_XSL\}\n <!-- COPIED FROM ${_HREF} (END)-->"
sed "s|^.*xsl:include.*${_HREF}.*|${_PLACEHOLDER}|g" -i ${_TARGET}
# remove header from source file
csplit -f ".tmp_source" "${_SOURCE}" /xsl:stylesheet/
rm .tmp_source00
# remove root and other things
sed "/xsl:stylesheet/d" -i .tmp_source01
sed "/xsl:output/d" -i .tmp_source01
# replace env-var in tmp results
export _CONTENT_XSL=$(cat .tmp_source01)
envsubst '$_CONTENT_XSL' < "${_TARGET}" > .tmp_results.xsl
rm .tmp_source01
# replace target file with newly generated one
mv .tmp_results.xsl ${_TARGET}
}
for HREF in $MERGE ; do
_SOURCE=${SOURCE_DIR}${HREF}
_merge $HREF ${_SOURCE} $TARGET
done
...@@ -34,6 +34,8 @@ ...@@ -34,6 +34,8 @@
<xsl:include href="xsl/entity.xsl" /> <xsl:include href="xsl/entity.xsl" />
<xsl:include href="xsl/filesystem.xsl" /> <xsl:include href="xsl/filesystem.xsl" />
<xsl:include href="xsl/footer.xsl" /> <xsl:include href="xsl/footer.xsl" />
<xsl:include href="xsl/common.xsl"/>
<xsl:include href="xsl/welcome.xsl"/>
<xsl:template match="/"> <xsl:template match="/">
<html lang="en"> <html lang="en">
......
...@@ -26,8 +26,6 @@ ...@@ -26,8 +26,6 @@
--> -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/> <xsl:output method="html"/>
<xsl:include href="common.xsl"/>
<xsl:include href="welcome.xsl"/>
<xsl:variable name="basepath"> <xsl:variable name="basepath">
<xsl:call-template name="uri_ends_with_slash"> <xsl:call-template name="uri_ends_with_slash">
<xsl:with-param name="uri"> <xsl:with-param name="uri">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment