diff options
author | Ben Murdoch <benm@google.com> | 2011-05-05 14:36:32 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-05-10 15:38:30 +0100 |
commit | f05b935882198ccf7d81675736e3aeb089c5113a (patch) | |
tree | 4ea0ca838d9ef1b15cf17ddb3928efb427c7e5a1 /WebKitTools/Scripts/ensure-valid-python | |
parent | 60fbdcc62bced8db2cb1fd233cc4d1e4ea17db1b (diff) | |
download | external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.zip external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.tar.gz external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.tar.bz2 |
Merge WebKit at r74534: Initial merge by git.
Change-Id: I6ccd1154fa1b19c2ec2a66878eb675738735f1eb
Diffstat (limited to 'WebKitTools/Scripts/ensure-valid-python')
-rwxr-xr-x | WebKitTools/Scripts/ensure-valid-python | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/WebKitTools/Scripts/ensure-valid-python b/WebKitTools/Scripts/ensure-valid-python deleted file mode 100755 index aede812..0000000 --- a/WebKitTools/Scripts/ensure-valid-python +++ /dev/null @@ -1,152 +0,0 @@ -#!/usr/bin/perl -w -# Copyright (C) 2010 Google Inc. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of Apple Inc. ("Apple") nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -use strict; - -use File::Basename; -use File::Spec; -use File::Temp qw(tempdir); -use FindBin; -use Getopt::Long; - -use lib $FindBin::Bin; -use webkitdirs; -use VCSUtils; - -my $macPythonURL = "http://www.python.org/ftp/python/2.6.5/python-2.6.5-macosx10.3-2010-03-24.dmg"; -my $macPythonMD5 = "84489bba813fdbb6041b69d4310a86da"; -my $macPythonInstallerName = "Python.mpkg"; - -# We could use a consistent download location, like the source or build directory. -my $tempDirectory = File::Temp::tempdir("WebKitPythonXXXX", TMPDIR => 1, CLEANUP => 1); -my $downloadDirectory = $tempDirectory; -my $mountPoint = File::Spec->join($tempDirectory, "mount"); - -sub checkPythonVersion() -{ - # Will exit 0 if Python is 2.5 or greater, non-zero otherwise. - `python -c "import sys;sys.exit(sys.version_info[:2] < (2,5))"`; - return exitStatus($?) == 0; -} - -sub downloadFileToPath($$) -{ - my ($remoteURL, $localPath) = @_; - print "Downloading $remoteURL to $localPath\n"; - my $exitCode = system("curl", "-o", $localPath, $remoteURL); - return exitStatus($exitCode) == 0; -} - -sub checkMD5($$) -{ - my ($path, $expectedMD5) = @_; - my $md5Output = `md5 -q "$path"`; - chomp($md5Output); - my $isValid = $md5Output eq $expectedMD5; - print "'$md5Output' does not match expected: '$expectedMD5'\n" unless $isValid; - return $isValid; -} - -sub mountDMG($$) -{ - my ($dmgPath, $mountPoint) = @_; - print "Mounting $dmgPath at $mountPoint\n"; - return system("hdiutil", "attach", "-mountpoint", $mountPoint, "-nobrowse", $dmgPath) == 0; -} - -sub unmountDMG($) -{ - my ($mountPoint) = @_; - print "Unmounting disk image from $mountPoint\n"; - my $exitCode = system("hdiutil", "detach", $mountPoint); - return exitStatus($exitCode) == 0; -} - -sub runInstaller($) -{ - my ($installerPackage) = @_; - print "sudo will now ask for your password to run the Python installer.\n"; - print "The installer will install Python in /Library/Frameworks/Python.framework\n"; - print "and add symlinks from /usr/local/bin.\n"; - return system("sudo", "installer", "-verbose", "-pkg", $installerPackage, "-target", "/") == 0; -} - -sub downloadAndMountMacPythonDMG($$) -{ - my ($pythonURL, $pythonMD5) = @_; - my $localFilename = basename($pythonURL); - my $localPath = File::Spec->join($downloadDirectory, $localFilename); - - downloadFileToPath($pythonURL, $localPath) or die "Failed to download $pythonURL"; - checkMD5($localPath, $pythonMD5) or die "MD5 check failed on $localPath"; - return mountDMG($localPath, $mountPoint); -} - -sub installMacPython() -{ - downloadAndMountMacPythonDMG($macPythonURL, $macPythonMD5) or die "Failed to download and mount disk image."; - print "Mounted python install image at: $mountPoint\n"; - my $installerPackage = File::Spec->join($mountPoint, $macPythonInstallerName); - my $installSuccess = runInstaller($installerPackage); - unmountDMG($mountPoint) or die "Failed to unmount disk image from $mountPoint"; - return $installSuccess; -} - -sub main() -{ - my $checkOnly = 0; - my $showHelp = 0; - my $getOptionsResult = GetOptions( - 'check-only!' => \$checkOnly, - 'help|h' => \$showHelp, - ); - if (!$getOptionsResult || $showHelp) { - print STDERR <<HELP; -Usage: $0 [options] - --check-only Check python version only. - -h|--help Show this help message. -HELP - return 1; - } - # Congrats, your Python is fine. - return 0 if checkPythonVersion(); - - return 1 if $checkOnly; - - if (!isTiger()) { - print "Your Python version is insufficient to run WebKit's Python code. Please update.\n"; - print "See http://trac.webkit.org/wiki/PythonGuidelines for more info.\n"; - return 1; - } - - installMacPython() or die "Failed to install Python."; - - checkPythonVersion() or die "Final version check failed, must have failed to update Python"; - print "Successfully updated python.\n"; -} - -exit(main()); |