Init now asks user if they want to ignore the vendor dir
parent
cd9c86c70c
commit
950bbcbed9
|
@ -103,6 +103,22 @@ EOT
|
||||||
}
|
}
|
||||||
|
|
||||||
$file->write($options);
|
$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)
|
protected function interact(InputInterface $input, OutputInterface $output)
|
||||||
|
@ -291,4 +307,55 @@ EOT
|
||||||
|
|
||||||
return $this->gitConfig = array();
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue