| #!/usr/bin/env python |
| # Copyright (c) 2016 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """ This module contains miscellaneous tools. """ |
| |
| import os |
| |
| |
| class ChDir(object): |
| """Enter and exit the given directory appropriately.""" |
| |
| def __init__(self, directory, verbose=True): |
| """Instantiate the ChDir. |
| |
| Args: |
| directory: string; the directory to enter. |
| verbose: bool; whether or not to print the directory changes. |
| """ |
| self._destination = directory |
| self._origin = None |
| self._verbose = verbose |
| |
| def __enter__(self): |
| """Change to the destination directory. |
| |
| Does not check whether the directory exists. |
| """ |
| self._origin = os.getcwd() |
| if self._verbose: |
| print 'chdir %s' % self._destination |
| os.chdir(self._destination) |
| |
| def __exit__(self, *args): |
| """Change back to the original directory.""" |
| if self._verbose: |
| print 'chdir %s' % self._origin |
| os.chdir(self._origin) |