function run_pack_plugin($task, $args) { ini_set('display_errors', 'on'); ini_set('error_reporting', E_ERROR); // the environment for poedit always is Development define('G_ENVIRONMENT', G_DEV_ENV); //the plugin name in the first argument if (!isset($args[0])) { printf("Error: %s\n", pakeColor::colorize('you must specify a valid name for the plugin', 'ERROR')); exit(0); } $pluginName = $args[0]; require_once "propel/Propel.php"; G::LoadSystem('templatePower'); $pluginDirectory = PATH_PLUGINS . $pluginName; $pluginOutDirectory = PATH_OUTTRUNK . 'plugins' . PATH_SEP . $pluginName; $pluginHome = PATH_OUTTRUNK . 'plugins' . PATH_SEP . $pluginName; //verify if plugin exists, $pluginClassFilename = PATH_PLUGINS . $pluginName . PATH_SEP . 'class.' . $pluginName . '.php'; $pluginFilename = PATH_PLUGINS . $pluginName . '.php'; if (!is_file($pluginClassFilename)) { printf("The plugin %s does not exist in this file %s \n", pakeColor::colorize($pluginName, 'ERROR'), pakeColor::colorize($pluginClassFilename, 'INFO')); die; } G::LoadClass('plugin'); require_once $pluginFilename; $oPluginRegistry =& PMPluginRegistry::getSingleton(); $pluginDetail = $oPluginRegistry->getPluginDetails($pluginName . '.php'); $fileTar = $pluginHome . PATH_SEP . $pluginName . '-' . $pluginDetail->iVersion . '.tar'; G::LoadThirdParty('pear/Archive', 'Tar'); $tar = new Archive_Tar($fileTar); $tar->_compress = false; $pathBase = $pluginHome . PATH_SEP . $pluginName . PATH_SEP; $tar->createModify($pluginHome . PATH_SEP . $pluginName . '.php', '', $pluginHome); addTarFolder($tar, $pathBase, $pluginHome); $aFiles = $tar->listContent(); foreach ($aFiles as $key => $val) { printf(" %6d %s \n", $val['size'], pakeColor::colorize($val['filename'], 'INFO')); } printf("File created in %s \n", pakeColor::colorize($fileTar, 'INFO')); $filesize = sprintf("%5.2f", filesize($fileTar) / 1024); printf("Filesize %s Kb \n", pakeColor::colorize($filesize, 'INFO')); }
function addTarFolder($tar, $pathBase, $pluginHome) { $aux = explode(PATH_SEP, $pathBase); if ($aux[count($aux) - 2] == '.svn') { return; } if ($handle = opendir($pathBase)) { while (false !== ($file = readdir($handle))) { if (is_file($pathBase . $file)) { //print "file $file \n"; $tar->addModify($pathBase . $file, '', $pluginHome); } if (is_dir($pathBase . $file) && $file != '..' && $file != '.') { //print "dir $pathBase$file \n"; addTarFolder($tar, $pathBase . $file . PATH_SEP, $pluginHome); } } closedir($handle); } }
function packPlugin($pluginName, $version) { $pathBase = PATH_DATA . 'skins' . PATH_SEP . $pluginName . PATH_SEP; $pathHome = PATH_DATA . 'skins' . PATH_SEP . $pluginName; $fileTar = PATH_DATA . 'skins' . PATH_SEP . $pluginName . '-' . $version . '.tar'; G::LoadSystem('templatePower'); /* $pluginDirectory = PATH_PLUGINS . $pluginName; $pluginOutDirectory = PATH_OUTTRUNK . 'plugins' . PATH_SEP . $pluginName; $pluginHome = PATH_OUTTRUNK . 'plugins' . PATH_SEP . $pluginName; //verify if plugin exists, $pluginClassFilename = PATH_PLUGINS . $pluginName . PATH_SEP . 'class.' . $pluginName . '.php'; if ( !is_file ( $pluginClassFilename ) ) { printf("The plugin %s doesn't exist in this file %s \n", pakeColor::colorize( $pluginName, 'ERROR'), pakeColor::colorize( $pluginClassFilename, 'INFO') ); die ; } */ G::LoadThirdParty('pear/Archive', 'Tar'); $tar = new Archive_Tar($fileTar); $tar->_compress = false; //$tar->createModify( $pathHome . PATH_SEP . $pluginName . '.php' ,'', $pathHome); addTarFolder($tar, $pathBase, $pathHome); $aFiles = $tar->listContent(); return $fileTar; }