#!/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())

#!/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())

Add .bat to pub command on Windows
[infra] Add .bat to pub command on Windows

#32656

Change-Id: I3a34bf2c81676eea0ab112a8aad701962590a6c3
Reviewed-on: https://dart-review.googlesource.com/55165
Commit-Queue: Alexander Thomas <29642742b6693024c89de8232f2e2542cf7eedf7@google.com>
Reviewed-by: William Hesse <a821cddceae7dc400f272e3cb1a72f400f9fed6d@google.com>
