107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com#!/usr/bin/env python 207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com# Copyright 2013 The Chromium Authors. All rights reserved. 307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com# Use of this source code is governed by a BSD-style license that can be 407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com# found in the LICENSE file. 507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com""" 707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.commass-rename: update source files (gyp lists, #includes) to reflect 807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.coma rename. Expects "git diff --cached -M" to list a bunch of renames. 907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 1007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.comTo use: 1107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 1) git mv foo1 bar1; git mv foo2 bar2; etc. 1207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 2) *without committing*, ./tools/git/mass-rename.py 13b5e34e22aa0e019e25f9f913f0e119a9a97e5562commit-bot@chromium.org 3) look at git diff (without --cached) to see what the damage is 1407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com""" 1507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 1607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 1707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.comimport os 1807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.comimport subprocess 1907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.comimport sys 2007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 2107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 2207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.comBASE_DIR = os.path.abspath(os.path.dirname(__file__)) 2307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 2407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 2507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.comdef main(): 2607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com popen = subprocess.Popen('git diff --cached --raw -M', 2707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com shell=True, stdout=subprocess.PIPE) 2807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com out, _ = popen.communicate() 2907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com if popen.returncode != 0: 3007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com return 1 3107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com for line in out.splitlines(): 3207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com parts = line.split('\t') 3307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com if len(parts) != 3: 3407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com print 'Skipping: %s -- not a rename?' % parts 3507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com continue 3607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com attrs, fro, to = parts 3707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com if attrs.split()[4].startswith('R'): 3807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com subprocess.check_call([ 3907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com sys.executable, 4007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com os.path.join(BASE_DIR, 'move_source_file.py'), 4107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com '--already_moved', 4207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com '--no_error_for_non_source_file', 4307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com fro, to]) 4407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com else: 4507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com print 'Skipping: %s -- not a rename?' % fro 4607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com return 0 4707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 4807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 4907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.comif __name__ == '__main__': 5007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com sys.exit(main()) 5107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com