old_contents: #!/usr/bin/env python
  # Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
  # for details. All rights reserved. Use of this source code is governed by a
  # BSD-style license that can be found in the LICENSE file.
  
  import os
  import subprocess
  import sys
  import shutil
  import tempfile
  
  PUBSPEC = """name: pub_integration_test
  dependencies:
    shelf:
    test:
  """
  
  def Main():
    out_dir = 'xcodebuild' if sys.platform == 'darwin' else 'out'
    pub = os.path.abspath('%s/ReleaseX64/dart-sdk/bin/pub' % out_dir)
  
    working_dir = tempfile.mkdtemp()
    try:
      pub_cache_dir = working_dir + '/pub_cache'
      env = { 'PUB_CACHE': pub_cache_dir }
  
      with open(working_dir + '/pubspec.yaml', 'w') as pubspec_yaml:
        pubspec_yaml.write(PUBSPEC)
  
      exit_code = subprocess.call([pub, 'get'], cwd=working_dir, env=env)
      if exit_code is not 0:
        return exit_code
  
      exit_code = subprocess.call([pub, 'upgrade'], cwd=working_dir, env=env)
      if exit_code is not 0:
        return exit_code
    finally:
      shutil.rmtree(working_dir);
  
  if __name__ == '__main__':
    sys.exit(Main())
  
new_contents: #!/usr/bin/env python
  # Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
  # for details. All rights reserved. Use of this source code is governed by a
  # BSD-style license that can be found in the LICENSE file.
  
  import os
  import subprocess
  import sys
  import shutil
  import tempfile
  
  PUBSPEC = """name: pub_integration_test
  dependencies:
    shelf:
    test:
  """
  
  def Main():
    out_dir = 'xcodebuild' if sys.platform == 'darwin' else 'out'
    extension = '' if not sys.platform == 'win32' else '.bat'
    pub = os.path.abspath(
      '%s/ReleaseX64/dart-sdk/bin/pub%s' % (out_dir, extension))
  
    working_dir = tempfile.mkdtemp()
    try:
      pub_cache_dir = working_dir + '/pub_cache'
      env = os.environ.copy()
      env['PUB_CACHE'] = pub_cache_dir
  
      with open(working_dir + '/pubspec.yaml', 'w') as pubspec_yaml:
        pubspec_yaml.write(PUBSPEC)
  
      exit_code = subprocess.call([pub, 'get'], cwd=working_dir, env=env)
      if exit_code is not 0:
        return exit_code
  
      exit_code = subprocess.call([pub, 'upgrade'], cwd=working_dir, env=env)
      if exit_code is not 0:
        return exit_code
    finally:
      shutil.rmtree(working_dir);
  
  if __name__ == '__main__':
    sys.exit(Main())
  
subject: Add .bat to pub command on Windows