Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(221)

Side by Side Diff: scripts/common/chromium_utils.py

Issue 2128613005: Archive Linux perf builds for manual bisect (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@master
Patch Set: added a missing comma Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | scripts/slave/recipe_modules/archive/api.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """ Set of basic operations/utilities that are used by the build. """ 5 """ Set of basic operations/utilities that are used by the build. """
6 6
7 from contextlib import contextmanager 7 from contextlib import contextmanager
8 import ast 8 import ast
9 import base64 9 import base64
10 import cStringIO 10 import cStringIO
(...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 # try to make the copy faster on Windows. http://crbug.com/418702. 593 # try to make the copy faster on Windows. http://crbug.com/418702.
594 if link_ok and WIN_LINK_FUNC: 594 if link_ok and WIN_LINK_FUNC:
595 WIN_LINK_FUNC(src_path, os.path.join(dest_dir, dest_fn)) 595 WIN_LINK_FUNC(src_path, os.path.join(dest_dir, dest_fn))
596 else: 596 else:
597 shutil.copy2(src_path, os.path.join(dest_dir, dest_fn)) 597 shutil.copy2(src_path, os.path.join(dest_dir, dest_fn))
598 else: 598 else:
599 shutil.copy2(src_path, os.path.join(dest_dir, src_file)) 599 shutil.copy2(src_path, os.path.join(dest_dir, src_file))
600 600
601 601
602 def MakeZip(output_dir, archive_name, file_list, file_relative_dir, 602 def MakeZip(output_dir, archive_name, file_list, file_relative_dir,
603 raise_error=True, remove_archive_directory=True): 603 raise_error=True, remove_archive_directory=True, strip_files=None):
604 """Packs files into a new zip archive. 604 """Packs files into a new zip archive.
605 605
606 Files are first copied into a directory within the output_dir named for 606 Files are first copied into a directory within the output_dir named for
607 the archive_name, which will be created if necessary and emptied if it 607 the archive_name, which will be created if necessary and emptied if it
608 already exists. The files are then then packed using archive names 608 already exists. The files are then then packed using archive names
609 relative to the output_dir. That is, if the zipfile is unpacked in place, 609 relative to the output_dir. That is, if the zipfile is unpacked in place,
610 it will create a directory identical to the new archive_name directory, in 610 it will create a directory identical to the new archive_name directory, in
611 the output_dir. The zip file will be named as the archive_name, plus 611 the output_dir. The zip file will be named as the archive_name, plus
612 '.zip'. 612 '.zip'.
613 613
614 Args: 614 Args:
615 output_dir: Absolute path to the directory in which the archive is to 615 output_dir: Absolute path to the directory in which the archive is to
616 be created. 616 be created.
617 archive_dir: Subdirectory of output_dir holding files to be added to 617 archive_dir: Subdirectory of output_dir holding files to be added to
618 the new zipfile. 618 the new zipfile.
619 file_list: List of paths to files or subdirectories, relative to the 619 file_list: List of paths to files or subdirectories, relative to the
620 file_relative_dir. 620 file_relative_dir.
621 file_relative_dir: Absolute path to the directory containing the files 621 file_relative_dir: Absolute path to the directory containing the files
622 and subdirectories in the file_list. 622 and subdirectories in the file_list.
623 raise_error: Whether to raise a PathNotFound error if one of the files in 623 raise_error: Whether to raise a PathNotFound error if one of the files in
624 the list is not found. 624 the list is not found.
625 remove_archive_directory: Whether to remove the archive staging directory 625 remove_archive_directory: Whether to remove the archive staging directory
626 before copying files over to it. 626 before copying files over to it.
627 strip_files: List of executable files to strip symbols when zipping. The
628 option currently does not work in Windows.
627 629
628 Returns: 630 Returns:
629 A tuple consisting of (archive_dir, zip_file_path), where archive_dir 631 A tuple consisting of (archive_dir, zip_file_path), where archive_dir
630 is the full path to the newly created archive_name subdirectory. 632 is the full path to the newly created archive_name subdirectory.
631 633
632 Raises: 634 Raises:
633 PathNotFound if any of the files in the list is not found, unless 635 PathNotFound if any of the files in the list is not found, unless
634 raise_error is False, in which case the error will be ignored. 636 raise_error is False, in which case the error will be ignored.
635 """ 637 """
636 638 if not strip_files:
639 strip_files = []
637 start_time = time.clock() 640 start_time = time.clock()
638 # Collect files into the archive directory. 641 # Collect files into the archive directory.
639 archive_dir = os.path.join(output_dir, archive_name) 642 archive_dir = os.path.join(output_dir, archive_name)
640 print 'output_dir: %s, archive_name: %s' % (output_dir, archive_name) 643 print 'output_dir: %s, archive_name: %s' % (output_dir, archive_name)
641 print 'archive_dir: %s, remove_archive_directory: %s, exists: %s' % ( 644 print 'archive_dir: %s, remove_archive_directory: %s, exists: %s' % (
642 archive_dir, remove_archive_directory, os.path.exists(archive_dir)) 645 archive_dir, remove_archive_directory, os.path.exists(archive_dir))
643 if remove_archive_directory and os.path.exists(archive_dir): 646 if remove_archive_directory and os.path.exists(archive_dir):
644 # Move it even if it's not a directory as expected. This can happen with 647 # Move it even if it's not a directory as expected. This can happen with
645 # FILES.cfg archive creation where we create an archive staging directory 648 # FILES.cfg archive creation where we create an archive staging directory
646 # that is the same name as the ultimate archive name. 649 # that is the same name as the ultimate archive name.
(...skipping 17 matching lines...) Expand all
664 if os.path.isdir(src_path): 667 if os.path.isdir(src_path):
665 if WIN_LINK_FUNC: 668 if WIN_LINK_FUNC:
666 WIN_LINK_FUNC(src_path, os.path.join(archive_dir, needed_file)) 669 WIN_LINK_FUNC(src_path, os.path.join(archive_dir, needed_file))
667 else: 670 else:
668 shutil.copytree(src_path, os.path.join(archive_dir, needed_file), 671 shutil.copytree(src_path, os.path.join(archive_dir, needed_file),
669 symlinks=True) 672 symlinks=True)
670 elif dirname != '' and basename != '': 673 elif dirname != '' and basename != '':
671 dest_dir = os.path.join(archive_dir, dirname) 674 dest_dir = os.path.join(archive_dir, dirname)
672 MaybeMakeDirectory(dest_dir) 675 MaybeMakeDirectory(dest_dir)
673 CopyFileToDir(src_path, dest_dir, basename, link_ok=True) 676 CopyFileToDir(src_path, dest_dir, basename, link_ok=True)
677 if not IsWindows() and basename in strip_files:
678 cmd = ['strip', os.path.join(dest_dir, basename)]
679 RunCommand(cmd)
674 else: 680 else:
675 CopyFileToDir(src_path, archive_dir, basename, link_ok=True) 681 CopyFileToDir(src_path, archive_dir, basename, link_ok=True)
682 if not IsWindows() and basename in strip_files:
683 cmd = ['strip', os.path.join(archive_dir, basename)]
684 RunCommand(cmd)
676 except PathNotFound: 685 except PathNotFound:
677 if raise_error: 686 if raise_error:
678 raise 687 raise
679 end_time = time.clock() 688 end_time = time.clock()
680 print 'Took %f seconds to create archive directory.' % (end_time - start_time) 689 print 'Took %f seconds to create archive directory.' % (end_time - start_time)
681 690
682 # Pack the zip file. 691 # Pack the zip file.
683 output_file = '%s.zip' % archive_dir 692 output_file = '%s.zip' % archive_dir
684 previous_file = '%s_old.zip' % archive_dir 693 previous_file = '%s_old.zip' % archive_dir
685 MoveFile(output_file, previous_file) 694 MoveFile(output_file, previous_file)
(...skipping 1407 matching lines...) Expand 10 before | Expand all | Expand 10 after
2093 seen = set() 2102 seen = set()
2094 for pathcomp in path: 2103 for pathcomp in path:
2095 pathcomp = os.path.normcase(pathcomp) 2104 pathcomp = os.path.normcase(pathcomp)
2096 if not pathcomp in seen: 2105 if not pathcomp in seen:
2097 seen.add(pathcomp) 2106 seen.add(pathcomp)
2098 for thefile in files: 2107 for thefile in files:
2099 name = os.path.join(pathcomp, thefile) 2108 name = os.path.join(pathcomp, thefile)
2100 if _access_check(name, mode): 2109 if _access_check(name, mode):
2101 return name 2110 return name
2102 return None 2111 return None
OLDNEW
« no previous file with comments | « no previous file | scripts/slave/recipe_modules/archive/api.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698