diff options
author | Donald Duo Zhao <deltazulu@google.com> | 2022-08-24 14:03:14 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2022-08-24 14:03:43 -0700 |
commit | 96fe01cc5f80ae2070b11462c816ffdfb75451fa (patch) | |
tree | 7fb2e05f80dbcbc28fa6cc940bf036ecfa10c907 /kotlin | |
parent | 88bd1bb10a88b51302f439e48292f069095d30d0 (diff) | |
download | bazelbuild-kotlin-rules-96fe01cc5f80ae2070b11462c816ffdfb75451fa.tar.gz |
Empty Dir Support
PiperOrigin-RevId: 469818319
Diffstat (limited to 'kotlin')
-rw-r--r-- | kotlin/common.bzl | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/kotlin/common.bzl b/kotlin/common.bzl index 6627b09..8a06b56 100644 --- a/kotlin/common.bzl +++ b/kotlin/common.bzl @@ -661,18 +661,32 @@ def _create_jar_from_tree_artifacts(ctx, jar_tool, output_jar, input_dirs): args = ctx.actions.args() - args.add("cf", output_jar) for in_dir in input_dirs: if not in_dir.is_directory: fail("Expected a directory input, but got {}.".format(in_dir)) - args.add("-C", in_dir.path) - args.add(".") + args.add(in_dir.path) - ctx.actions.run( - executable = jar_tool, + ctx.actions.run_shell( + command = """ + JAR_TOOL={} + OUT_JAR={} + OUT_DIR="$(dirname $OUT_JAR)" + RES_DIR=$OUT_DIR/META-INF + mkdir $RES_DIR + $JAR_TOOL cf $OUT_JAR $RES_DIR + rmdir $RES_DIR + for INPUT_DIR in $@ + do + if [ -d $INPUT_DIR ] + then + $JAR_TOOL uf $OUT_JAR -C $INPUT_DIR . + fi + done + """.format(jar_tool.executable.path, output_jar.path), + arguments = [args], inputs = input_dirs, outputs = [output_jar], - arguments = [args], + tools = [jar_tool], mnemonic = "KtJarActionFromTreeArtifacts", progress_message = "Create Jar %{output}", ) |