|
|
|
@ -103,6 +103,22 @@ EOT
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$file->write($options);
|
|
|
|
|
|
|
|
|
|
if ($input->isInteractive()) {
|
|
|
|
|
$ignoreFile = realpath('.gitignore');
|
|
|
|
|
|
|
|
|
|
if (false === $ignoreFile) {
|
|
|
|
|
$ignoreFile = realpath('.') . '/.gitignore';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!$this->hasVendorIgnore($ignoreFile)) {
|
|
|
|
|
$question = 'Would you like the <info>vendor</info> directory added to your <info>.gitignore</info> [<comment>yes</comment>]?';
|
|
|
|
|
|
|
|
|
|
if ($dialog->askConfirmation($output, $question, true)) {
|
|
|
|
|
$this->addVendorIgnore($ignoreFile);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected function interact(InputInterface $input, OutputInterface $output)
|
|
|
|
@ -291,4 +307,55 @@ EOT
|
|
|
|
|
|
|
|
|
|
return $this->gitConfig = array();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Checks the local .gitignore file for the Composer vendor directory.
|
|
|
|
|
*
|
|
|
|
|
* Tested patterns include:
|
|
|
|
|
* "/$vendor"
|
|
|
|
|
* "$vendor"
|
|
|
|
|
* "$vendor/"
|
|
|
|
|
* "/$vendor/"
|
|
|
|
|
* "/$vendor/*"
|
|
|
|
|
* "$vendor/*"
|
|
|
|
|
*
|
|
|
|
|
* @param string $ignoreFile
|
|
|
|
|
* @param string $vendor
|
|
|
|
|
*
|
|
|
|
|
* @return Boolean
|
|
|
|
|
*/
|
|
|
|
|
protected function hasVendorIgnore($ignoreFile, $vendor = 'vendor')
|
|
|
|
|
{
|
|
|
|
|
if (!file_exists($ignoreFile)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$pattern = sprintf(
|
|
|
|
|
'~^/?%s(/|/\*)?$~',
|
|
|
|
|
preg_quote($vendor, '~')
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
$lines = file($ignoreFile, FILE_IGNORE_NEW_LINES);
|
|
|
|
|
foreach ($lines as $line) {
|
|
|
|
|
if (preg_match($pattern, $line)) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected function addVendorIgnore($ignoreFile, $vendor = 'vendor')
|
|
|
|
|
{
|
|
|
|
|
$contents = "";
|
|
|
|
|
if (file_exists($ignoreFile)) {
|
|
|
|
|
$contents = file_get_contents($ignoreFile);
|
|
|
|
|
|
|
|
|
|
if ("\n" !== substr($contents, 0, -1)) {
|
|
|
|
|
$contents .= "\n";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
file_put_contents($ignoreFile, $contents . $vendor);
|
|
|
|
|
}
|
|
|
|
|
}
|