forked from pinterest/bazel
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rewrite //:combine_distfiles.sh in Python
It can only pack to zip for now (packing to tar is not trivial and I haven't figured it out yet). This allows building //:bazel-distfile on Windows. Previously it was either timing out or taking so long that it was unbearable (over 10 minutes). I never waited long enough to see it build. The new Python version runs under just a few seconds. Change-Id: I3264eb7132dd58c581c4216e5bbab035a79d716d PiperOrigin-RevId: 164954162
- Loading branch information
1 parent
5f99fda
commit 0783b9e
Showing
4 changed files
with
64 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# pylint: disable=g-bad-file-header | ||
# pylint: disable=g-direct-third-party-import | ||
# | ||
# Copyright 2017 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. | ||
"""Creates the Bazel source distribution archive.""" | ||
|
||
import contextlib | ||
import os.path | ||
import sys | ||
import zipfile | ||
|
||
from src.create_embedded_tools_lib import copy_tar_to_zip | ||
from src.create_embedded_tools_lib import copy_zip_to_zip | ||
|
||
|
||
def main(): | ||
output_zip = os.path.join(os.getcwd(), sys.argv[1]) | ||
input_files = sorted(sys.argv[2:]) | ||
|
||
# Copy all the input_files into output_zip. | ||
# Adding contextlib.closing to be python 2.6 (for centos 6.7) compatible | ||
with contextlib.closing( | ||
zipfile.ZipFile(output_zip, "w", zipfile.ZIP_DEFLATED)) as output_zip: | ||
|
||
def _normalize(path): | ||
return path[2:] if path.startswith("./") else path | ||
|
||
for input_file in input_files: | ||
if input_file.endswith(".tar"): | ||
copy_tar_to_zip(output_zip, input_file, _normalize) | ||
elif input_file.endswith(".zip"): | ||
copy_zip_to_zip(output_zip, input_file, _normalize) | ||
else: | ||
raise Exception("unknown archive type \"%s\"" % input_file) | ||
|
||
|
||
if __name__ == "__main__": | ||
main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters