aboutsummaryrefslogtreecommitdiffhomepage
path: root/examples/jsonnet/intersection.jsonnet
diff options
context:
space:
mode:
authorGravatar David Chen <dzc@google.com>2015-09-12 01:32:26 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2015-09-14 15:39:18 +0000
commit361d2e2f7448038355b337ee4f7191a28c20755a (patch)
tree705fb5e52a6a36300d11cf2c0f451f2b9324ae7b /examples/jsonnet/intersection.jsonnet
parent2ad1c81755063b72a599844e730e0344344f61e8 (diff)
Add Jsonnet rules to Bazel.
RELNOTES: Add Jsonnet rules to Bazel -- MOS_MIGRATED_REVID=102895524
Diffstat (limited to 'examples/jsonnet/intersection.jsonnet')
-rw-r--r--examples/jsonnet/intersection.jsonnet60
1 files changed, 60 insertions, 0 deletions
diff --git a/examples/jsonnet/intersection.jsonnet b/examples/jsonnet/intersection.jsonnet
new file mode 100644
index 0000000000..e0f2fd1224
--- /dev/null
+++ b/examples/jsonnet/intersection.jsonnet
@@ -0,0 +1,60 @@
+// Copyright 2015 Google Inc. All rights reserved.
+//
+// Licensed 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.
+
+local workflow = import "examples/jsonnet/workflow.jsonnet";
+
+// Workflow that performs an intersection of two files using shell commands.
+{
+ intersection: workflow.Workflow {
+ jobs: {
+ local input_file1 = "/tmp/list1",
+ local input_file2 = "/tmp/list2",
+ local sorted_file1 = "/tmp/list1_sorted",
+ local sorted_file2 = "/tmp/list2_sorted",
+ local intersection = "/tmp/intersection",
+
+ SortJob:: workflow.ShJob {
+ input_file:: "",
+ output_file:: "",
+ command: "sort %s > %s" % [self.input_file, self.output_file],
+ inputs: [self.input_file],
+ outputs: [self.output_file],
+ },
+
+ sort_file1: self.SortJob {
+ input_file:: input_file1,
+ output_file:: sorted_file1,
+ },
+
+ sort_file2: self.SortJob {
+ input_file:: input_file2,
+ output_file:: sorted_file2,
+ },
+
+ intersect: workflow.ShJob {
+ deps: [
+ ":sort_file1",
+ ":sort_file2",
+ ],
+ command: "comm -12 %s %s > %s" %
+ [sorted_file1, sorted_file2, intersection],
+ inputs: [
+ sorted_file1,
+ sorted_file2,
+ ],
+ outputs: [intersection],
+ },
+ }
+ }
+}