From 368fc07abf03975a54f01cb8bd4aac408cff248b Mon Sep 17 00:00:00 2001 From: Demian Katz <demian.katz@villanova.edu> Date: Wed, 17 Dec 2014 11:00:12 -0500 Subject: [PATCH] Improved file safety when re-running install.php. --- install.php | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/install.php b/install.php index e1b279d18fe..6740d6d4e3b 100644 --- a/install.php +++ b/install.php @@ -530,7 +530,13 @@ function buildApacheConfig($baseDir, $overrideDir, $basePath, $module, $multi, $ break; } - if (!@file_put_contents($overrideDir . '/httpd-vufind.conf', $config)) { + $target = $overrideDir . '/httpd-vufind.conf'; + if (file_exists($target)) { + $bak = $target . '.bak.' . time(); + copy($target, $bak); + echo "Backed up existing Apache configuration to $bak.\n"; + } + if (!@file_put_contents($target, $config)) { die("Problem writing {$overrideDir}/httpd-vufind.conf.\n\n"); } } @@ -566,14 +572,19 @@ function buildWindowsConfig($baseDir, $overrideDir, $module) */ function buildImportConfig($baseDir, $overrideDir, $filename) { - $import = @file_get_contents($baseDir . '/import/' . $filename); - $import = str_replace("/usr/local/vufind", $baseDir, $import); - $import = preg_replace( - "/^\s*solrmarc.path\s*=.*$/m", - "solrmarc.path = {$overrideDir}/import|{$baseDir}/import", $import - ); - if (!@file_put_contents($overrideDir . '/import/' . $filename, $import)) { - die("Problem writing {$overrideDir}/import/{$filename}.\n\n"); + $target = $overrideDir . '/import/' . $filename; + if (file_exists($target)) { + echo "Warning: $target already exists; skipping file creation.\n"; + } else { + $import = @file_get_contents($baseDir . '/import/' . $filename); + $import = str_replace("/usr/local/vufind", $baseDir, $import); + $import = preg_replace( + "/^\s*solrmarc.path\s*=.*$/m", + "solrmarc.path = {$overrideDir}/import|{$baseDir}/import", $import + ); + if (!@file_put_contents($target, $import)) { + die("Problem writing {$overrideDir}/import/{$filename}.\n\n"); + } } } -- GitLab