Home | History | Annotate | Download | only in webrtc
      1 #!/usr/bin/env python
      2 # Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
      3 #
      4 # Use of this source code is governed by a BSD-style license
      5 # that can be found in the LICENSE file in the root of the source
      6 # tree. An additional intellectual property rights grant can be found
      7 # in the file PATENTS.  All contributing project authors may
      8 # be found in the AUTHORS file in the root of the source tree.
      9 
     10 """Checks for legacy root directory and instructs the user how to upgrade."""
     11 
     12 import os
     13 import sys
     14 
     15 SOLUTION_ROOT_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)),
     16                                  os.pardir)
     17 MESSAGE = """\
     18 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
     19                       A C T I O N     R E Q I R E D
     20 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
     21 
     22 It looks like you have a legacy checkout where the solution's top-level
     23 directory is named 'trunk'. From now on, it must be named 'src'.
     24 
     25 What you need to do is to:
     26 
     27 1. Edit your .gclient file and change the solution name from 'trunk' to 'src'
     28 2. Rename your 'trunk' directory to 'src'
     29 3. Re-run gclient sync (or gclient runhooks)"""
     30 
     31 
     32 def main():
     33   gclient_filename = os.path.join(SOLUTION_ROOT_DIR, '.gclient')
     34   config_dict = {}
     35   try:
     36     with open(gclient_filename, 'rb') as gclient_file:
     37       exec(gclient_file, config_dict)
     38     for solution in config_dict.get('solutions', []):
     39       if solution['name'] == 'trunk':
     40         print MESSAGE
     41         if solution.get('custom_vars', {}).get('root_dir'):
     42           print ('4. Optional: Remove your "root_dir" entry from the '
     43                  'custom_vars dictionary of the solution.')
     44 
     45         # Remove the gclient cache file to avoid an error on the next sync.
     46         entries_file = os.path.join(SOLUTION_ROOT_DIR, '.gclient_entries')
     47         if os.path.exists(entries_file):
     48           os.unlink(entries_file)
     49         return 1
     50     return 0
     51   except Exception as e:
     52     print >> sys.stderr, "Error while parsing .gclient: ", e
     53     return 1
     54 
     55 
     56 if __name__ == '__main__':
     57   sys.exit(main())
     58