| # Copyright (C) 2016 The Android Open Source Project | 
 | # | 
 | # 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. | 
 |  | 
 | sh_bang_template = (" && ".join([ | 
 |     "echo '#!/usr/bin/env bash' > $@", | 
 |     "echo \"# this script should run from the root of your workspace.\" >> $@", | 
 |     "echo \"set -e\" >> $@", | 
 |     "echo \"\" >> $@", | 
 |     "echo 'if [[ \"$$VERBOSE\" ]]; then set -x ; fi' >> $@", | 
 |     "echo \"\" >> $@", | 
 |     "echo %s >> $@", | 
 |     "echo \"\" >> $@", | 
 |     "echo %s >> $@", | 
 | ])) | 
 |  | 
 | def maven_package( | 
 |         version, | 
 |         repository = None, | 
 |         url = None, | 
 |         jar = {}, | 
 |         src = {}, | 
 |         doc = {}, | 
 |         war = {}): | 
 |     build_cmd = ["bazel", "build"] | 
 |     mvn_cmd = ["python", "tools/maven/mvn.py", "-v", version] | 
 |     api_cmd = mvn_cmd[:] | 
 |     api_targets = [] | 
 |     for type, d in [("jar", jar), ("java-source", src), ("javadoc", doc)]: | 
 |         for a, t in sorted(d.items()): | 
 |             api_cmd.append("-s %s:%s:$(location %s)" % (a, type, t)) | 
 |             api_targets.append(t) | 
 |  | 
 |     native.genrule( | 
 |         name = "gen_api_install", | 
 |         cmd = sh_bang_template % ( | 
 |             " ".join(build_cmd + api_targets), | 
 |             " ".join(api_cmd + ["-a", "install"]), | 
 |         ), | 
 |         srcs = api_targets, | 
 |         outs = ["api_install.sh"], | 
 |         executable = True, | 
 |         testonly = 1, | 
 |     ) | 
 |  | 
 |     if repository and url: | 
 |         native.genrule( | 
 |             name = "gen_api_deploy", | 
 |             cmd = sh_bang_template % ( | 
 |                 " ".join(build_cmd + api_targets), | 
 |                 " ".join(api_cmd + [ | 
 |                     "-a", | 
 |                     "deploy", | 
 |                     "--repository", | 
 |                     repository, | 
 |                     "--url", | 
 |                     url, | 
 |                 ]), | 
 |             ), | 
 |             srcs = api_targets, | 
 |             outs = ["api_deploy.sh"], | 
 |             executable = True, | 
 |             testonly = 1, | 
 |         ) | 
 |  | 
 |     war_cmd = mvn_cmd[:] | 
 |     war_targets = [] | 
 |     for a, t in sorted(war.items()): | 
 |         war_cmd.append("-s %s:war:$(location %s)" % (a, t)) | 
 |         war_targets.append(t) | 
 |  | 
 |     native.genrule( | 
 |         name = "gen_war_install", | 
 |         cmd = sh_bang_template % ( | 
 |             " ".join(build_cmd + war_targets), | 
 |             " ".join(war_cmd + ["-a", "install"]), | 
 |         ), | 
 |         srcs = war_targets, | 
 |         outs = ["war_install.sh"], | 
 |         executable = True, | 
 |     ) | 
 |  | 
 |     if repository and url: | 
 |         native.genrule( | 
 |             name = "gen_war_deploy", | 
 |             cmd = sh_bang_template % ( | 
 |                 " ".join(build_cmd + war_targets), | 
 |                 " ".join(war_cmd + [ | 
 |                     "-a", | 
 |                     "deploy", | 
 |                     "--repository", | 
 |                     repository, | 
 |                     "--url", | 
 |                     url, | 
 |                 ]), | 
 |             ), | 
 |             srcs = war_targets, | 
 |             outs = ["war_deploy.sh"], | 
 |             executable = True, | 
 |         ) |