public function writeGitExclude($dir)
{
$filesToExclude = ['/' . $this->config->get('local.local_dir'), '/' . $this->config->get('local.web_root')];
$excludeFilename = $dir . '/.git/info/exclude';
$existing = '';
// Skip writing anything if the contents already include the
// application.name.
if (file_exists($excludeFilename)) {
$existing = file_get_contents($excludeFilename);
if (strpos($existing, $this->config->get('application.name')) !== false) {
// Backwards compatibility between versions 3.0.0 and 3.0.2.
$newRoot = "\n" . '/' . $this->config->get('application.name') . "\n";
$oldRoot = "\n" . '/.www' . "\n";
if (strpos($existing, $oldRoot) !== false && strpos($existing, $newRoot) === false) {
$this->fs->dumpFile($excludeFilename, str_replace($oldRoot, $newRoot, $existing));
}
if (is_link($dir . '/.www')) {
unlink($dir . '/.www');
}
// End backwards compatibility block.
return;
}
}
$content = "# Automatically added by the " . $this->config->get('application.name') . "\n" . implode("\n", $filesToExclude) . "\n";
if (!empty($existing)) {
$content = $existing . "\n" . $content;
}
$this->fs->dumpFile($excludeFilename, $content);
}