1
0
Fork 0

Merge remote-tracking branch 'Wirone/unixy-proxy'

Conflicts:
	src/Composer/Installer/LibraryInstaller.php
pull/4541/merge
Jordi Boggiano 2015-10-27 15:10:35 +00:00
commit 90a90e22de
1 changed files with 25 additions and 7 deletions

View File

@ -310,12 +310,30 @@ class LibraryInstaller implements InstallerInterface
{ {
$binPath = $this->filesystem->findShortestPath($link, $bin); $binPath = $this->filesystem->findShortestPath($link, $bin);
return "#!/usr/bin/env sh\n". $binDir = ProcessExecutor::escape(dirname($binPath));
'SRC_DIR="`pwd`"'."\n". $binFile = basename($binPath);
'cd "`dirname "$0"`"'."\n".
'cd '.ProcessExecutor::escape(dirname($binPath))."\n". $proxyCode = <<<PROXY
'BIN_TARGET="`pwd`/'.basename($binPath)."\"\n". #!/usr/bin/env sh
'cd "$SRC_DIR"'."\n".
'"$BIN_TARGET" "$@"'."\n"; dir=$(d=$(dirname "$0"); cd "\$d"; cd $binDir && pwd)
# See if we are running in Cygwin by checking for cygpath program
if command -v 'cygpath' >/dev/null 2>&1; then
# Cygwin paths start with /cygdrive/ which will break windows PHP,
# so we need to translate the dir path to windows format. However
# we could be using cygwin PHP which does not require this, so we
# test if the path to PHP starts with /cygdrive/ rather than /usr/bin
if [[ $(which php) == /cygdrive/* ]]; then
dir=$(cygpath -m \$dir);
fi
fi
dir=$(echo \$dir | sed 's/ /\ /g')
"\${dir}/$binFile" "$@"
PROXY;
return $proxyCode;
} }
} }