diff options
author | 2015-09-12 01:32:26 +0000 | |
---|---|---|
committer | 2015-09-14 15:39:18 +0000 | |
commit | 361d2e2f7448038355b337ee4f7191a28c20755a (patch) | |
tree | 705fb5e52a6a36300d11cf2c0f451f2b9324ae7b /examples/jsonnet/intersection.jsonnet | |
parent | 2ad1c81755063b72a599844e730e0344344f61e8 (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.jsonnet | 60 |
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], + }, + } + } +} |