| # Copyright 2016 The Bazel Authors. 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. |
| """Module to generate sample bazelrc file.""" |
| |
| import os |
| from string import Template |
| |
| from util import get_git_root |
| |
| GIT_ROOT = get_git_root() |
| BAZELRC_DIR = os.path.join(GIT_ROOT, "bazelrc") |
| LATEST_BAZELRC_LINK = BAZELRC = os.path.join(BAZELRC_DIR, "latest.bazelrc") |
| LICENCE_TPL = os.path.join(GIT_ROOT, "release", "license.tpl") |
| BAZELRC_TPL = os.path.join(GIT_ROOT, "release", "bazelrc.tpl") |
| |
| |
| def create_bazelrc_and_update_link(bazel_version): |
| """Creates new sample .bazelrc file and update latest.bazelrc symlink. |
| |
| Example bazelrc files can be found in directory bazelrc/. |
| |
| There is one sample bazelrc file Bazel version. bazelrc/latest.bazelrc should |
| always be symlinked to the .bazelrc file for the latest version of Bazel. |
| |
| If the file already exists in this repo, the script will delete it and |
| generate new one. |
| |
| Args: |
| bazel_version: string, the version of Bazel used to generate the configs. |
| """ |
| bazelrc_path = os.path.join( |
| BAZELRC_DIR, "bazel-{version}.bazelrc".format(version=bazel_version)) |
| |
| # Remove old version of this .bazelrc file. |
| if os.path.exists(bazelrc_path): |
| os.remove(bazelrc_path) |
| |
| with open(bazelrc_path, "w") as bazelrc_file: |
| # Write license header. |
| with open(LICENCE_TPL, "r") as license_header: |
| bazelrc_file.write(license_header.read()) |
| |
| # Write sample .bazelrc body. |
| with open(BAZELRC_TPL, "r") as tpl_file: |
| tpl = Template(tpl_file.read()).substitute(BAZEL_VERSION=bazel_version) |
| bazelrc_file.write(tpl) |
| |
| # Update latest.bazelrc link |
| if os.path.exists(LATEST_BAZELRC_LINK): |
| os.remove(LATEST_BAZELRC_LINK) |
| os.symlink(os.path.basename(bazelrc_path), LATEST_BAZELRC_LINK) |