| #!/usr/bin/env python |
| # Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. |
| # |
| # Use of this source code is governed by a BSD-style license |
| # that can be found in the LICENSE file in the root of the source |
| # tree. An additional intellectual property rights grant can be found |
| # in the file PATENTS. All contributing project authors may |
| # be found in the AUTHORS file in the root of the source tree. |
| |
| """Checks for legacy root directory and instructs the user how to upgrade.""" |
| |
| import os |
| import sys |
| |
| SOLUTION_ROOT_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), |
| os.pardir) |
| MESSAGE = """\ |
| @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
| A C T I O N R E Q I R E D |
| @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
| |
| It looks like you have a legacy checkout where the solution's top-level |
| directory is named 'trunk'. From now on, it must be named 'src'. |
| |
| What you need to do is to: |
| |
| 1. Edit your .gclient file and change the solution name from 'trunk' to 'src' |
| 2. Rename your 'trunk' directory to 'src' |
| 3. Re-run gclient sync (or gclient runhooks)""" |
| |
| |
| def main(): |
| gclient_filename = os.path.join(SOLUTION_ROOT_DIR, '.gclient') |
| config_dict = {} |
| try: |
| with open(gclient_filename, 'rb') as gclient_file: |
| exec(gclient_file, config_dict) |
| for solution in config_dict.get('solutions', []): |
| if solution['name'] == 'trunk': |
| print MESSAGE |
| if solution.get('custom_vars', {}).get('root_dir'): |
| print ('4. Optional: Remove your "root_dir" entry from the ' |
| 'custom_vars dictionary of the solution.') |
| |
| # Remove the gclient cache file to avoid an error on the next sync. |
| entries_file = os.path.join(SOLUTION_ROOT_DIR, '.gclient_entries') |
| if os.path.exists(entries_file): |
| os.unlink(entries_file) |
| return 1 |
| return 0 |
| except Exception as e: |
| print >> sys.stderr, "Error while parsing .gclient: ", e |
| return 1 |
| |
| |
| if __name__ == '__main__': |
| sys.exit(main()) |