Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(505)

Side by Side Diff: tools/utils.py

Issue 1343103002: Observatory build should try backup method if the SDK doesn't work. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Address comments Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/run_pub.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 # for details. All rights reserved. Use of this source code is governed by a 2 # for details. All rights reserved. Use of this source code is governed by a
3 # BSD-style license that can be found in the LICENSE file. 3 # BSD-style license that can be found in the LICENSE file.
4 4
5 # This file contains a set of utilities functions used by other Python-based 5 # This file contains a set of utilities functions used by other Python-based
6 # scripts. 6 # scripts.
7 7
8 import commands 8 import commands
9 import datetime 9 import datetime
10 import json 10 import json
(...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 print 'Executing: ' + ' '.join(cmd) 558 print 'Executing: ' + ' '.join(cmd)
559 pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, 559 pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
560 shell=IsWindows()) 560 shell=IsWindows())
561 output = pipe.communicate() 561 output = pipe.communicate()
562 if pipe.returncode != 0: 562 if pipe.returncode != 0:
563 raise Exception('Execution failed: ' + str(output)) 563 raise Exception('Execution failed: ' + str(output))
564 return pipe.returncode, output 564 return pipe.returncode, output
565 565
566 566
567 def DartBinary(): 567 def DartBinary():
568 # TODO(24311): Replace all uses of this with CheckedInSdk[Fix]Executable().
568 tools_dir = os.path.dirname(os.path.realpath(__file__)) 569 tools_dir = os.path.dirname(os.path.realpath(__file__))
569 dart_binary_prefix = os.path.join(tools_dir, 'testing', 'bin') 570 dart_binary_prefix = os.path.join(tools_dir, 'testing', 'bin')
570 if IsWindows(): 571 if IsWindows():
571 return os.path.join(dart_binary_prefix, 'windows', 'dart.exe') 572 return os.path.join(dart_binary_prefix, 'windows', 'dart.exe')
572 else: 573 else:
573 arch = GuessArchitecture() 574 arch = GuessArchitecture()
574 system = GuessOS() 575 system = GuessOS()
575 if arch == 'armv5te': 576 if arch == 'armv5te':
576 # TODO(zra): This binary does not exist, yet. Check one in once we have 577 # TODO(zra): This binary does not exist, yet. Check one in once we have
577 # sufficient stability. 578 # sufficient stability.
578 return os.path.join(dart_binary_prefix, system, 'dart-armv5te') 579 return os.path.join(dart_binary_prefix, system, 'dart-armv5te')
579 elif arch == 'arm': 580 elif arch == 'arm':
580 return os.path.join(dart_binary_prefix, system, 'dart-arm') 581 return os.path.join(dart_binary_prefix, system, 'dart-arm')
581 elif arch == 'arm64': 582 elif arch == 'arm64':
582 return os.path.join(dart_binary_prefix, system, 'dart-arm64') 583 return os.path.join(dart_binary_prefix, system, 'dart-arm64')
583 elif arch == 'mips': 584 elif arch == 'mips':
584 return os.path.join(dart_binary_prefix, system, 'dart-mips') 585 return os.path.join(dart_binary_prefix, system, 'dart-mips')
585 else: 586 else:
586 return os.path.join(dart_binary_prefix, system, 'dart') 587 return os.path.join(dart_binary_prefix, system, 'dart')
587 588
588 589
589 def DartSdkBinary(): 590 def DartSdkBinary():
590 tools_dir = os.path.dirname(os.path.realpath(__file__)) 591 tools_dir = os.path.dirname(os.path.realpath(__file__))
591 dart_binary_prefix = os.path.join(tools_dir, '..', 'sdk' , 'bin') 592 dart_binary_prefix = os.path.join(tools_dir, '..', 'sdk' , 'bin')
592 return os.path.join(dart_binary_prefix, 'dart') 593 return os.path.join(dart_binary_prefix, 'dart')
593 594
594 595
596 # The checked-in SDKs are documented at
597 # https://github.com/dart-lang/sdk/wiki/The-checked-in-SDK-in-tools
595 def CheckedInSdkPath(): 598 def CheckedInSdkPath():
596 # We don't use the normal macos, linux, win32 directory names here, instead, 599 # We don't use the normal macos, linux, win32 directory names here, instead,
597 # we use the names that the download_from_google_storage script uses. 600 # we use the names that the download_from_google_storage script uses.
598 osdict = {'Darwin':'mac', 'Linux':'linux', 'Windows':'win'} 601 osdict = {'Darwin':'mac', 'Linux':'linux', 'Windows':'win'}
599 system = platform.system() 602 system = platform.system()
600 try: 603 try:
601 osname = osdict[system] 604 osname = osdict[system]
602 except KeyError: 605 except KeyError:
603 print >>sys.stderr, ('WARNING: platform "%s" not supported') % (system) 606 print >>sys.stderr, ('WARNING: platform "%s" not supported') % (system)
604 return None; 607 return None;
605 tools_dir = os.path.dirname(os.path.realpath(__file__)) 608 tools_dir = os.path.dirname(os.path.realpath(__file__))
606 return os.path.join(tools_dir, 609 return os.path.join(tools_dir,
607 'sdks', 610 'sdks',
608 osname, 611 osname,
609 'dart-sdk') 612 'dart-sdk')
610 613
611 614
612 def CheckedInPubPath(): 615 def CheckedInSdkExecutable():
613 executable_name = 'pub' 616 name = 'dart'
614 if platform.system() == 'Windows': 617 if IsWindows():
615 executable_name = 'pub.bat' 618 name = 'dart.exe'
616 return os.path.join(CheckedInSdkPath(), 'bin', executable_name) 619 elif GuessOS() == 'linux':
620 arch = GuessArchitecture()
621 if arch == 'mips':
622 name = 'dart-mips'
623 elif arch == 'arm':
624 name = 'dart-arm'
625 return os.path.join(CheckedInSdkPath(), 'bin', name)
626
627
628 def CheckedInSdkCheckExecutable():
629 executable = CheckedInSdkExecutable()
630 canary_script = os.path.join(os.path.dirname(os.path.realpath(__file__)),
631 'canary.dart')
632 try:
633 if 42 == subprocess.call([executable, canary_script]):
634 return True
635 except OSError as e:
636 pass
637 return False
617 638
618 639
619 class TempDir(object): 640 class TempDir(object):
620 def __init__(self, prefix=''): 641 def __init__(self, prefix=''):
621 self._temp_dir = None 642 self._temp_dir = None
622 self._prefix = prefix 643 self._prefix = prefix
623 644
624 def __enter__(self): 645 def __enter__(self):
625 self._temp_dir = tempfile.mkdtemp(self._prefix) 646 self._temp_dir = tempfile.mkdtemp(self._prefix)
626 return self._temp_dir 647 return self._temp_dir
(...skipping 11 matching lines...) Expand all
638 os.chdir(self._working_directory) 659 os.chdir(self._working_directory)
639 660
640 def __exit__(self, *_): 661 def __exit__(self, *_):
641 print "Enter directory = ", self._old_cwd 662 print "Enter directory = ", self._old_cwd
642 os.chdir(self._old_cwd) 663 os.chdir(self._old_cwd)
643 664
644 665
645 if __name__ == "__main__": 666 if __name__ == "__main__":
646 import sys 667 import sys
647 Main() 668 Main()
OLDNEW
« no previous file with comments | « tools/run_pub.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698