Files
grzanieplus.pl/plugins/stInstallerPlugin/lib/stInstallerIgnore.class.php
2025-03-12 17:06:23 +01:00

86 lines
2.8 KiB
PHP

<?php
/**
* SOTESHOP/stInstallerPlugin
*
* Ten plik należy do aplikacji stInstallerPlugin opartej na licencji (Open License SOTE) Otwarta Licencja SOTE.
* Nie zmieniaj tego pliku, jeśli chcesz korzystać z automatycznych aktualizacji oprogramowania.
* Jeśli chcesz wprowadzać swoje modyfikacje do programu, zapoznaj się z dokumentacją, jak zmieniać
* oprogramowanie bez zmiany kodu bazowego http://www.sote.pl/modifications
*
* @package stInstallerPlugin
* @subpackage lib
* @copyright SOTE (www.sote.pl)
* @license http://www.sote.pl/license/open (Open License SOTE) Otwarta Licencja SOTE
* @version $Id: stInstallerIgnore.class.php 3782 2010-03-05 13:39:42Z marek $
* @author Marek Jakubowicz <marek.jakubowicz@sote.pl>
*/
/**
* Baza ignorowanych plików synchornizacji
*/
class stInstallerIgnore
{
/**
* Odczytuje i zwraca listę wyrażeń regularnych, dla pomijanych plików
*
* @param string $app nazwa aplikacji np. stAppName
* @return array(ereg=>(ignore|discard)) discard - odrzuca zawsze, ignore - pomija jesli plik juz istnieje
*/
static public function getIgnore($app)
{
$ignore=array();
$file=sfConfig::get('sf_root_dir').DIRECTORY_SEPARATOR.'packages'.DIRECTORY_SEPARATOR.$app.DIRECTORY_SEPARATOR.'ignore.yml';
if (file_exists($file))
{
$data=sfYaml::load($file);
if (! empty($data['ignore']))
{
$ignore = $data['ignore'];
}
}
$file=sfConfig::get('sf_root_dir').DIRECTORY_SEPARATOR.'install'.DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR.
$app.DIRECTORY_SEPARATOR.'packages'.DIRECTORY_SEPARATOR.$app.DIRECTORY_SEPARATOR.'ignore.yml';
if (file_exists($file))
{
$data=sfYaml::load($file);
if (! empty($data['ignore']))
{
$ignore = array_merge($ignore, $data['ignore']);
}
}
return $ignore;
}
/**
* Odczytywanie listy wzorców dla plików, które mają zostać zsynchronizowane.
* W przypadku ignore_replace pliki te będą trakowane jako ignore jeżeli zostąły zmienione, w przeciwnym wypadku będą napisywane.
*
* @param string $app Nazwa aplikacji
* @return array lista wzorców dla plików
*/
static public function getIgnoreReplace($app)
{
$files = array(sfConfig::get('sf_root_dir').DIRECTORY_SEPARATOR.'packages'.DIRECTORY_SEPARATOR.$app.DIRECTORY_SEPARATOR.'ignore.yml',
sfConfig::get('sf_root_dir').DIRECTORY_SEPARATOR.'install'.DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR.$app.DIRECTORY_SEPARATOR.'packages'.DIRECTORY_SEPARATOR.$app.DIRECTORY_SEPARATOR.'ignore.yml');
$ignoreReplace = array();
foreach($files as $file)
{
if (file_exists($file))
{
$data = sfYaml::load($file);
if (isset($data['ignore_replace'])) $ignoreReplace = array_merge($ignoreReplace, $data['ignore_replace']);
}
}
return array_unique($ignoreReplace);
}
}