old_contents: #!/usr/bin/env python3
  # 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 optparse
  import os
  import subprocess
  import sys
  import shutil
  import tempfile
  
  PUBSPEC = """name: pub_integration_test
  environment:
    sdk: '>=2.10.0 <=3.0.0'
  dependencies:
    shelf:
    test:
  """
  
  
  def Main():
      parser = optparse.OptionParser()
      parser.add_option(
          '--mode', action='store', dest='mode', type='string', default='release')
      parser.add_option('--arch',
                        action='store',
                        dest='arch',
                        type='string',
                        default='x64')
  
      (options, args) = parser.parse_args()
  
      arch = 'XARM64' if options.arch == 'arm64' else 'X64'
      mode = ('Debug' if options.mode == 'debug' else 'Release')
  
      out_dir = 'xcodebuild' if sys.platform == 'darwin' else 'out'
      extension = '' if not sys.platform == 'win32' else '.bat'
      pub = os.path.abspath('%s/%s%s/dart-sdk/bin/pub%s' %
                            (out_dir, mode, arch, extension))
      print(pub)
  
      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 != 0:
              return exit_code
  
          exit_code = subprocess.call([pub, 'upgrade'], cwd=working_dir, env=env)
          if exit_code != 0:
              return exit_code
      finally:
          shutil.rmtree(working_dir)
  
  
  if __name__ == '__main__':
      sys.exit(Main())
  
new_contents: #!/usr/bin/env python3
  # 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 optparse
  import os
  import subprocess
  import sys
  import shutil
  import tempfile
  
  PUBSPEC = """name: pub_integration_test
  environment:
    sdk: '>=2.10.0 <=3.0.0'
  dependencies:
    shelf:
    test:
  """
  
  
  def Main():
      parser = optparse.OptionParser()
      parser.add_option(
          '--mode', action='store', dest='mode', type='string', default='release')
      parser.add_option('--arch',
                        action='store',
                        dest='arch',
                        type='string',
                        default='x64')
  
      (options, args) = parser.parse_args()
  
      arch = 'ARM64' if options.arch == 'arm64' else 'X64'
      mode = ('Debug' if options.mode == 'debug' else 'Release')
  
      out_dir = 'xcodebuild' if sys.platform == 'darwin' else 'out'
      extension = '' if not sys.platform == 'win32' else '.bat'
      pub = os.path.abspath('%s/%s%s/dart-sdk/bin/pub%s' %
                            (out_dir, mode, arch, extension))
      print(pub)
  
      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 != 0:
              return exit_code
  
          exit_code = subprocess.call([pub, 'upgrade'], cwd=working_dir, env=env)
          if exit_code != 0:
              return exit_code
      finally:
          shutil.rmtree(working_dir)
  
  
  if __name__ == '__main__':
      sys.exit(Main())
  
subject: Fix pub integration test on arm64 macs