OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """ This module contains miscellaneous tools used by the buildbot scripts. """ | 6 """ This module contains miscellaneous tools used by the buildbot scripts. """ |
7 | 7 |
8 import os | 8 import os |
9 | 9 |
10 from git_utils import GIT | 10 from git_utils import GIT |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 path_parts = relative_path.split(os.sep) | 60 path_parts = relative_path.split(os.sep) |
61 abs_path = os.path.abspath('.') | 61 abs_path = os.path.abspath('.') |
62 for path_part in path_parts: | 62 for path_part in path_parts: |
63 abs_path = os.path.abspath(os.path.join(abs_path, path_part)) | 63 abs_path = os.path.abspath(os.path.join(abs_path, path_part)) |
64 return abs_path | 64 return abs_path |
65 | 65 |
66 | 66 |
67 class ChDir(object): | 67 class ChDir(object): |
68 """Enter and exit the given directory appropriately.""" | 68 """Enter and exit the given directory appropriately.""" |
69 | 69 |
70 def __init__(self, directory): | 70 def __init__(self, directory, verbose=True): |
71 """Instantiate the ChDir. | 71 """Instantiate the ChDir. |
72 | 72 |
73 Args: | 73 Args: |
74 directory: string; the directory to enter. | 74 directory: string; the directory to enter. |
| 75 verbose: bool; whether or not to print the directory changes. |
75 """ | 76 """ |
76 self._destination = directory | 77 self._destination = directory |
77 self._origin = None | 78 self._origin = None |
| 79 self._verbose = verbose |
78 | 80 |
79 def __enter__(self): | 81 def __enter__(self): |
80 """Change to the destination directory. | 82 """Change to the destination directory. |
81 | 83 |
82 Does not check whether the directory exists. | 84 Does not check whether the directory exists. |
83 """ | 85 """ |
84 self._origin = os.getcwd() | 86 self._origin = os.getcwd() |
85 print 'chdir %s' % self._destination | 87 if self._verbose: |
| 88 print 'chdir %s' % self._destination |
86 os.chdir(self._destination) | 89 os.chdir(self._destination) |
87 | 90 |
88 def __exit__(self, *args): | 91 def __exit__(self, *args): |
89 """Change back to the original directory.""" | 92 """Change back to the original directory.""" |
90 print 'chdir %s' % self._origin | 93 if self._verbose: |
| 94 print 'chdir %s' % self._origin |
91 os.chdir(self._origin) | 95 os.chdir(self._origin) |
92 | 96 |
93 | 97 |
94 class GitBranch(object): | 98 class GitBranch(object): |
95 """Class to manage git branches. | 99 """Class to manage git branches. |
96 | 100 |
97 This class allows one to create a new branch in a repository to make changes, | 101 This class allows one to create a new branch in a repository to make changes, |
98 then it commits the changes, switches to master branch, and deletes the | 102 then it commits the changes, switches to master branch, and deletes the |
99 created temporary branch upon exit. | 103 created temporary branch upon exit. |
100 """ | 104 """ |
(...skipping 28 matching lines...) Expand all Loading... |
129 def __exit__(self, exc_type, _value, _traceback): | 133 def __exit__(self, exc_type, _value, _traceback): |
130 if self._upload: | 134 if self._upload: |
131 # Only upload if no error occurred. | 135 # Only upload if no error occurred. |
132 try: | 136 try: |
133 if exc_type is None: | 137 if exc_type is None: |
134 self.commit_and_upload(use_commit_queue=self._commit_queue) | 138 self.commit_and_upload(use_commit_queue=self._commit_queue) |
135 finally: | 139 finally: |
136 shell_utils.run([GIT, 'checkout', 'master']) | 140 shell_utils.run([GIT, 'checkout', 'master']) |
137 shell_utils.run([GIT, 'branch', '-D', self._branch_name]) | 141 shell_utils.run([GIT, 'branch', '-D', self._branch_name]) |
138 | 142 |
OLD | NEW |