diff --git a/lib/classes/sshtransport/class.FroxlorDeployfileCreator.php b/lib/classes/sshtransport/class.FroxlorDeployfileCreator.php index b66e6e3b..4cfea723 100644 --- a/lib/classes/sshtransport/class.FroxlorDeployfileCreator.php +++ b/lib/classes/sshtransport/class.FroxlorDeployfileCreator.php @@ -1,89 +1,98 @@ - - * @copyright 2010 the authors - * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt - * @version SVN: $Id: class.FroxlorPkgCreator.php 1376 2010-10-20 19:07:51Z scarya $ - * @link http://www.froxlor.org/ - */ - -/** - * Class FroxlorDeployfileCreator - * - * This class creates the deploy file. - * - * @category FroxlorCore - * @package Classes - * @subpackage System - * @author Froxlor Team - * @copyright 2010 the authors - * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt - * @link http://www.froxlor.org/ - */ -class FroxlorDeployfileCreator -{ - public static $_list = null; - - /** - * This function iterates through the $dir and generates the deploy list. - * - * @param string $dir dir to deploy - * - * @return array file listing - */ - public static function createList($dir) - { - $list = array(); - - if (is_dir($dir)) { - $its = new RecursiveIteratorIterator( - new RecursiveDirectoryIterator($dir) - ); - - foreach ($its as $fullFileName => $it ) { - if (!preg_match("/userdata.inc.php$/i", $it->getFilename())) { - $list[] = strstr($fullFileName, "lib/"); - } - } - - } - - self::$_list = $list; - - return $list; - } - - /** - * This function saves the deploy list to a file. - * - * @param string $toPath file path - * @param array $list array list with all needed files - * - * @return boolean - */ - public static function saveListTo($toPath, $list = null) - { - if (is_null($list)) { - $list = self::$_list; - } - - return file_put_contents($toPath, implode("\n", $list)); - } + + * @copyright 2010 the authors + * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt + * @version SVN: $Id$ + * @link http://www.froxlor.org/ + */ + +/** + * Class FroxlorDeployfileCreator + * + * This class creates the deploy file. + * + * @category FroxlorCore + * @package Classes + * @subpackage System + * @author Froxlor Team + * @copyright 2010 the authors + * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt + * @link http://www.froxlor.org/ + */ +class FroxlorDeployfileCreator +{ + /** + * Contains the file listing. + * + * @var array + */ + public static $_list = null; + + /** + * This function iterates through the $dir and generates the deploy list. + * + * @param array $dir dir to deploy + * + * @return array file listing + */ + public static function createList($dirList) + { + $list = array(); + + foreach ($dirList as $dir) { + if (is_dir($dir)) { + $its = new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($dir) + ); + + foreach ($its as $fullFileName => $it ) { + if (!preg_match("/(userdata.inc.php|navigation|configfiles)/i", $it->getFilename())) { + $list[] = $fullFileName; + } + } + + } else { + throw new Exception($dir." is not a directory!"); + } + } + + self::$_list = $list; + + return $list; + } + + /** + * This function saves the deploy list to a file. + * + * @param string $toPath file path + * @param array $list array list with all needed files + * + * @return boolean + */ + public static function saveListTo($toPath, $list = null) + { + if (is_null($list)) { + $list = self::$_list; + } + + return file_put_contents($toPath, implode("\n", $list)); + } } \ No newline at end of file diff --git a/lib/classes/sshtransport/class.FroxlorPkgCreator.php b/lib/classes/sshtransport/class.FroxlorPkgCreator.php index 1f36430e..1aaa7bb9 100644 --- a/lib/classes/sshtransport/class.FroxlorPkgCreator.php +++ b/lib/classes/sshtransport/class.FroxlorPkgCreator.php @@ -69,7 +69,7 @@ class FroxlorPkgCreator // parse the config if (!$this->_checkConfig()) { - die("Error in FroxlorPkgCreator::_checkConfig()"); + throw new Exception("Error in FroxlorPkgCreator::_checkConfig()"); } $this->pack($toPath); @@ -99,7 +99,6 @@ class FroxlorPkgCreator private function _checkConfig() { foreach ($this->_config as $key => $var) { - // TODO maybe more excluded files? if (strstr($var, "userdata.inc")) { // delete this entry unset($this->_config[$key]); @@ -132,7 +131,8 @@ class FroxlorPkgCreator if ($zip->open($toPath, ZIPARCHIVE::OVERWRITE)) { // write data foreach ($this->_config as $var) { - $zip->addFile($var, strstr($var, "lib/")); + $name = str_replace("froxlor/", "", strstr($var, "froxlor/")); + $zip->addFile($var, $name); } // close it