157028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com#!/usr/bin/python
257028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com
3df8224662e615bd36cf8bebae8e58c017201f998sgk@chromium.org# Copyright (c) 2009 Google Inc. All rights reserved.
4df8224662e615bd36cf8bebae8e58c017201f998sgk@chromium.org# Use of this source code is governed by a BSD-style license that can be
5df8224662e615bd36cf8bebae8e58c017201f998sgk@chromium.org# found in the LICENSE file.
657028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com
757028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.comimport os.path
857028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.comimport shutil
957028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.comimport sys
1057028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com
1157028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com
1257028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.comgyps = [
13a54384dfdb2cacc542c1dcf30a72f548ba80d0adthomasvl@chromium.org    'app/app.gyp',
1457028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    'base/base.gyp',
158d02884d1515a0c3cd7b85fe9508dd3d136cb0b3mark@chromium.org    'build/temp_gyp/googleurl.gyp',
163fde2488abc530fb8710d9e81cb8b19807572a84mark@chromium.org    'build/all.gyp',
1735d23def8cd397d452a491a0ac7aa8bc1720c7d9mark@chromium.org    'build/common.gypi',
18eeda268b0dcd55c0333740df3a8511b950063bf6bradnelson@google.com    'build/external_code.gypi',
1957028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    'chrome/test/security_tests/security_tests.gyp',
20ecefc6f1ed2da8765151ed024b9a59021b94f2bbmark@chromium.org    'chrome/third_party/hunspell/hunspell.gyp',
21319d3c023a3deceaf03a4b8e51ebeb58c4e2a934mark@chromium.org    'chrome/chrome.gyp',
22ab773da890e47ba36f26964b86b18cddb9475508mark@chromium.org    'media/media.gyp',
2357028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    'net/net.gyp',
24ecefc6f1ed2da8765151ed024b9a59021b94f2bbmark@chromium.org    'printing/printing.gyp',
2557028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    'sdch/sdch.gyp',
2657028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    'skia/skia.gyp',
27a54384dfdb2cacc542c1dcf30a72f548ba80d0adthomasvl@chromium.org    'testing/gmock.gyp',
2857028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    'testing/gtest.gyp',
2957028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    'third_party/bzip2/bzip2.gyp',
3057028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    'third_party/icu38/icu38.gyp',
3157028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    'third_party/libevent/libevent.gyp',
3257028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    'third_party/libjpeg/libjpeg.gyp',
3357028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    'third_party/libpng/libpng.gyp',
3406eed23395b2c2b14d9382c88bcc797ac7c434c5mark@chromium.org    'third_party/libxml/libxml.gyp',
350e25ba5409181515ead0800bc1c8ba39c150f08dbradnelson@google.com    'third_party/libxslt/libxslt.gyp',
36a54384dfdb2cacc542c1dcf30a72f548ba80d0adthomasvl@chromium.org    'third_party/lzma_sdk/lzma_sdk.gyp',
3757028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    'third_party/modp_b64/modp_b64.gyp',
387ad16d026cdadc19c2ac11224a5e801dd4529f7dbradnelson@google.com    'third_party/npapi/npapi.gyp',
39e46823aa00cc87e3b05d2799b71babca752962d4mark@chromium.org    'third_party/sqlite/sqlite.gyp',
4057028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    'third_party/zlib/zlib.gyp',
41a54384dfdb2cacc542c1dcf30a72f548ba80d0adthomasvl@chromium.org    'v8/tools/gyp/v8.gyp',
427ad16d026cdadc19c2ac11224a5e801dd4529f7dbradnelson@google.com    'webkit/activex_shim/activex_shim.gyp',
4343722c1275b97717bcc6d643b19ff7af26cf1eebbradnelson@google.com    'webkit/activex_shim_dll/activex_shim_dll.gyp',
441c0743d1fa47781cd00ea01626e7192909c91c5cmark@chromium.org    'webkit/build/action_csspropertynames.py',
451c0743d1fa47781cd00ea01626e7192909c91c5cmark@chromium.org    'webkit/build/action_cssvaluekeywords.py',
461c0743d1fa47781cd00ea01626e7192909c91c5cmark@chromium.org    'webkit/build/action_jsconfig.py',
471c0743d1fa47781cd00ea01626e7192909c91c5cmark@chromium.org    'webkit/build/action_makenames.py',
481c0743d1fa47781cd00ea01626e7192909c91c5cmark@chromium.org    'webkit/build/action_maketokenizer.py',
491c0743d1fa47781cd00ea01626e7192909c91c5cmark@chromium.org    'webkit/build/action_useragentstylesheets.py',
501c0743d1fa47781cd00ea01626e7192909c91c5cmark@chromium.org    'webkit/build/rule_binding.py',
511c0743d1fa47781cd00ea01626e7192909c91c5cmark@chromium.org    'webkit/build/rule_bison.py',
521c0743d1fa47781cd00ea01626e7192909c91c5cmark@chromium.org    'webkit/build/rule_gperf.py',
538b4944e416d8646dce9639a729c91e0212a4b304mark@chromium.org    'webkit/tools/test_shell/test_shell.gyp',
54166455c3ec39d9de6717f2389f33d28536b0a89bbradnelson@google.com    'webkit/webkit.gyp',
5557028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com]
5657028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com
5757028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com
5857028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.comdef Main(argv):
5957028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com  if len(argv) != 3 or argv[1] not in ['push', 'pull']:
6057028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    print 'Usage: %s push/pull PATH_TO_CHROME' % argv[0]
6157028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    return 1
6257028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com
6357028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com  path_to_chrome = argv[2]
6457028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com
6557028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com  for g in gyps:
6657028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    chrome_file = os.path.join(path_to_chrome, g)
679353fdef0b7573fa1eae4a53b02ac3474665e57emark@chromium.org    local_file = os.path.join(os.path.dirname(argv[0]), os.path.split(g)[1])
6857028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    if argv[1] == 'push':
6957028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com      print 'Copying %s to %s' % (local_file, chrome_file)
7057028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com      shutil.copyfile(local_file, chrome_file)
7157028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    elif argv[1] == 'pull':
7257028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com      print 'Copying %s to %s' % (chrome_file, local_file)
7357028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com      shutil.copyfile(chrome_file, local_file)
7457028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com    else:
7557028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com      assert False
7657028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com
7757028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com  return 0
7857028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com
7957028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com
8057028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.comif __name__ == '__main__':
8157028880d87c6cea89119f8c5cb7bca4b91373d6bradnelson@google.com  sys.exit(Main(sys.argv))
82