mirror of
https://github.com/digital-asset/daml.git
synced 2024-09-20 01:07:18 +03:00
852189ac73
As suggested by @hurryabit in #129. CHANGELOG_BEGIN CHANGELOG_END
112 lines
3.9 KiB
Python
112 lines
3.9 KiB
Python
# Copyright (c) 2020 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
|
||
# SPDX-License-Identifier: Apache-2.0
|
||
load("@os_info//:os_info.bzl", "is_windows")
|
||
|
||
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 = """
|
||
set -eou pipefail
|
||
SRC=templates
|
||
OUT=create-daml-app
|
||
mkdir -p $$OUT
|
||
cp -rL $$SRC/create-daml-app/* $$OUT
|
||
# Undo project name templating since we don’t want that to show up
|
||
# in the docs.
|
||
find $$OUT/ -name '*.template' -type f -exec sh -c 'mv "$$0" "$${0%.template}" && sed -i "s/__PROJECT_NAME__/create-daml-app/g" "$${0%.template}"' {} ';'
|
||
# 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
|
||
$(execpath //bazel_tools/sh:mktgz) $@ create-daml-app
|
||
""",
|
||
tools = [
|
||
"//bazel_tools/sh:mktgz",
|
||
"@patch_dev_env//:patch",
|
||
],
|
||
visibility = ["//visibility:public"],
|
||
) if not is_windows else None
|
||
|
||
genrule(
|
||
name = "templates-tarball",
|
||
srcs = glob(
|
||
[
|
||
"default-gitattributes",
|
||
"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-gitattributes $$OUT/$$d/.gitattributes
|
||
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
|
||
|
||
$(execpath //bazel_tools/sh:mktgz) $@ templates-tarball
|
||
""",
|
||
tools = ["//bazel_tools/sh:mktgz"],
|
||
visibility = ["//visibility:public"],
|
||
)
|