#!/usr/bin/perl -w use strict; use FindBin; use File::Copy; use IO::CaptureOutput qw(qxx); use Cwd; use English; use lib $FindBin::Bin; use TBBTestSuite::Common qw(has_bin); sub winpath { return $_[0] unless $OSNAME eq 'cygwin'; my $res = `cygpath -aw $_[0]`; chomp $res; return $res; } my $virtenv_marionette_dir = winpath("$FindBin::Bin/virtualenv-marionette-5.0.0"); my $virtenv_pefile_dir = winpath("$FindBin::Bin/virtualenv-pefile"); sub run { system(@_) == 0 || die "Error running " . join(' ', @_); } sub run_from_dir { my $old_cwd = getcwd; chdir shift @_; my $res = run(@_); chdir $old_cwd; return $res; } my $virtualenv_cmd = has_bin('virtualenv2') ? 'virtualenv2' : 'virtualenv'; my $bin = 'bin'; my $lib = 'lib'; if ($OSNAME eq 'cygwin') { $bin = 'Scripts'; $lib = 'Lib'; $virtualenv_cmd = "$FindBin::Bin/bundle/python/Scripts/virtualenv.exe"; run("$FindBin::Bin/bundle/install_virtualenv.sh") unless -f $virtualenv_cmd; } unless (-d $virtenv_marionette_dir) { run($virtualenv_cmd, $virtenv_marionette_dir); # upgrade pip and setuptools run("$virtenv_marionette_dir/$bin/pip", 'install', '--upgrade', 'pip'); run("$virtenv_marionette_dir/$bin/pip", 'install', '--upgrade', 'setuptools'); run_from_dir('marionette', "$virtenv_marionette_dir/$bin/python", 'setup.py', 'develop'); } if ($OSNAME eq 'cygwin') { unless (-d $virtenv_pefile_dir) { run($virtualenv_cmd, $virtenv_pefile_dir); run("$virtenv_pefile_dir/$bin/pip", 'install', 'pefile'); } }