daml/templates/BUILD.bazel
Moritz Kiefer ce2a8a5086
Reduce dependencies of live-preview script (#6703)
The intention was to pull in the source for the GSG but it turns out
that the templates tarball doesn’t just bundle up files, it also
includes generated scala code for the scala quickstart which depends
on damlc. This PR splits the GSG sources including the patching into a
separate rule which does not depend on damlc and only copies that in
live-preview.

changelog_begin
changelog_end
2020-07-13 12:31:56 +00:00

105 lines
3.6 KiB
Python

# Copyright (c) 2020 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
exports_files(glob(["create-daml-app-test-resources/*"]))
# Split out into a separate rule so we can cheaply include this in the
# live-preview.
genrule(
name = "create-daml-app-docs",
srcs = glob(
["create-daml-app/**"],
exclude = ["**/NO_AUTO_COPYRIGHT"],
) + [
"//templates:create-daml-app-test-resources/messaging.patch",
],
outs = ["create-daml-app-docs.tar.gz"],
cmd = """
SRC=templates
OUT=create-daml-app
mkdir -p $$OUT
cp -rL $$SRC/create-daml-app/* $$OUT
# Apply patch for messaging feature (we only need the "after" state)
PATCH_TOOL=$$PWD/$(location @patch_dev_env//:patch)
MESSAGING_PATCH=$$PWD/$(location //templates:create-daml-app-test-resources/messaging.patch)
$$PATCH_TOOL -s -p1 < $$MESSAGING_PATCH
tar c create-daml-app \\
--owner=0 --group=0 --numeric-owner --mtime=2000-01-01\\ 00:00Z --sort=name \\
| gzip -n >$(location :create-daml-app-docs.tar.gz)
""",
tools = ["@patch_dev_env//:patch"],
visibility = ["//visibility:public"],
)
genrule(
name = "templates-tarball",
srcs = glob(
[
"default-gitignore",
"default-dlint-yaml",
"skeleton/**",
"empty-skeleton/**",
"create-daml-app/**",
"quickstart-java/**",
"quickstart-scala/**",
],
exclude = ["**/NO_AUTO_COPYRIGHT"],
) + [
"//docs:quickstart-java.tar.gz",
"//docs:daml-intro-templates",
"//docs:daml-patterns",
"//docs:copy-trigger-template",
"//docs:script-example-template",
"//language-support/scala/examples:quickstart-scala-dir",
],
outs = ["templates-tarball.tar.gz"],
cmd = """
SRC=templates
OUT=templates-tarball
# templates in templates dir
for d in skeleton empty-skeleton create-daml-app quickstart-scala quickstart-java; do
mkdir -p $$OUT/$$d
cp -rL $$SRC/$$d/* $$OUT/$$d/
# use default .gitignore and .dlint.yaml if they don't exist in the template
cp -n $$SRC/default-gitignore $$OUT/$$d/.gitignore
cp -n $$SRC/default-dlint-yaml $$OUT/$$d/.dlint.yaml
# We avoid introducing infix syntax in the GSG so we disable
# the lint there.
if [ "$$d" = "create-daml-app" ]; then
cat >> $$OUT/$$d/.dlint.yaml <<EOF
# This rule is enabled by default but we avoid
# infix syntax here to keep things simple.
- ignore: {name: Use infix }
EOF
fi
done
## special cases we should work to remove
# quickstart-java template
tar xf $(location //docs:quickstart-java.tar.gz) --strip-components=1 -C $$OUT/quickstart-java
# quickstart-scala template
cp -r $(location //language-support/scala/examples:quickstart-scala-dir)/* $$OUT/quickstart-scala/
# daml intro templates
tar xf $(location //docs:daml-intro-templates) -C $$OUT
mkdir -p $$OUT/copy-trigger
tar xf $(location //docs:copy-trigger-template) -C $$OUT/copy-trigger
mkdir -p $$OUT/script-example
tar xf $(location //docs:script-example-template) -C $$OUT/script-example
mkdir -p $$OUT/daml-patterns
tar xf $(location //docs:daml-patterns) --strip-components=1 -C $$OUT/daml-patterns
tar c templates-tarball \\
--owner=0 --group=0 --numeric-owner --mtime=2000-01-01\\ 00:00Z --sort=name \\
| gzip -n >$(location :templates-tarball.tar.gz)
""",
visibility = ["//visibility:public"],
)