[zi-cvs] packages/com.zzoss.package.lib Package.php,1.1,1.2 package.xml,1.1,1.2
[email protected] Sun, 04 Jan 2004 05:26:57 -0800
| Newsgroups | gmane.comp.php.zzoss.installer.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/zzossinstaller/packages/com.zzoss.package.lib
In directory sc8-pr-cvs1:/tmp/cvs-serv29252/com.zzoss.package.lib
Modified Files:
Package.php package.xml
Log Message:
development applications can now also be installed
Index: Package.php
===================================================================
RCS file: /cvsroot/zzossinstaller/packages/com.zzoss.package.lib/Package.php,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Package.php 22 Dec 2003 17:15:46 -0000 1.1
--- Package.php 4 Jan 2004 13:26:55 -0000 1.2
***************
*** 41,44 ****
--- 41,54 ----
class ZZOSS_Package {
+ /**
+ * Log information.
+ */
+ var $log = '';
+
+ /**
+ * Packages that could not be processed.
+ */
+ var $pkgs_unprocessed = array();
+
function extractBundles($src, $dest, $backup_dest = NULL)
{
***************
*** 317,320 ****
--- 327,485 ----
closedir($dp);
}
+ }
+
+ function packageSources($bundle_dir, $packages, $app_settings)
+ {
+ foreach($packages as $pos => $package){
+
+ $package_unique = $package['@']['name'].'-'.$package['@']['version'];
+
+ for($i = 1; $i <= 5; $i++){
+ if(strlen($app_settings['source_'.$i])){
+ if(isset($packages[$pos])){
+ $log[$package_unique] .= '* Scanning '.$app_settings['source_'.$i]."\n";
+ $package_src = $app_settings['source_'.$i].$package['@']['name'].DIRECTORY_SEPARATOR;
+ $package_dest = $bundle_dir;
+ $package_tgz = $package_unique.'.tgz';
+ $package_xml = $package_src.'package.xml';
+
+ if(!file_exists($package_xml)){
+ // Maybe, a .tgz is already there...
+ if(file_exists($app_settings['source_'.$i].$package_tgz)){
+ $log[$package_unique] .= ' Found '.$package_tgz.'.'."\n";
+ copy($app_settings['source_'.$i].$package_tgz, $package_dest.$package_tgz);
+ // remove this package from stack
+ unset($packages[$pos]);
+ //$log[$package_unique] .= ' Moved '.$package_tgz.' to '.$bundle_dir.' directory.'."\n";
+ } else {
+ $log[$package_unique] .= ' Nothing found'."\n";
+ }
+ } else {
+ $log[$package_unique] .= ' Found package.xml'."\n";
+
+ // Get package.xml and parse it to fill placeholder with content.
+
+ $replace_values['{zi_release_date}'] = date('Y-m-d');
+ $replace_values['{zi_copyright_year}'] = date('Y');
+
+ include_once 'ZZOSS_File/Replace.php';
+ $replace = new ZZOSS_FileReplace;
+ $replace->file($package_xml);
+ $replace->replace($replace_values);
+
+ // Create a temporary package.xml
+
+ // Create the temporary directory where we place it.
+ // But only if the directory does not already exist.
+ if(!strlen($pgk_tmpdir)){
+ if (!($pkg_tmpdir = System::mktemp(array('-d')))) {
+ return PEAR::raiseError("Cannot create temporary directory.");
+ }
+ }
+
+ $package_xml_new = $pkg_tmpdir . DIRECTORY_SEPARATOR . 'package.xml';
+ $replace->writeout($package_xml_new);
+
+ // Get package.xml parameters.
+ include_once 'ZZOSS_Config/Config.php';
+ $config = new ZZOSS_Config(array('cache' => true, 'numeric' => array('file')));
+ $config->setFile($package_xml_new);
+ $xml = $config->query('/package');
+
+ if($package_unique == $xml['name'].'-'.$xml['release']['version']){
+ $tar_list = array();
+
+ // Iterate files.
+ $files = $xml['release']['filelist']['file'];
+ if(!is_array($files)){
+ $files = array();
+ }
+ if(count($files)){
+ foreach($files as $file){
+ $tar_list[] = $file['@']['name'];
+ }
+ }
+
+ $plugin_files = array();
+ // Process plugin files.
+ if(is_array($xml['release']['plugin']['filelist']['file'])){
+ $plugin_files = $xml['release']['plugin']['filelist']['file'];
+ }
+ if(is_array($xml['release']['plugin']['file'])){
+ $plugin_files = $xml['release']['plugin']['file'];
+ }
+
+ if(count($plugin_files)){
+ // We remember if a plugin file has been defined
+ // various times, because we need to process it only once.
+ $plugin_files_processed = array();
+ foreach($plugin_files as $plugin_file){
+ if(!in_array($plugin_file['@']['name'], $plugin_files_processed)){
+ array_push($plugin_files_processed, $plugin_file['@']['name']);
+ $tar_list[] = $plugin_file['@']['name'];
+ }
+ }
+ }
+
+ $cwd = getcwd();
+ chdir($package_src);
+ $tar = new Archive_Tar($package_dest.$package_tgz);
+ $tar->setErrorHandling(PEAR_ERROR_PRINT);
+ $tar->createModify($package_xml_new, '', $pkg_tmpdir);
+ //$tar->create('package.xml');
+ $tar->addModify($tar_list, $package_unique);
+ $log[$package_unique] .= ' Created package '.$package_tgz.'.'."\n";
+ chdir($cwd);
+
+ // delete the temporary package.xml
+ unlink($package_xml_new);
+
+ //copy($package_tgz, $package_dest.$package_tgz);
+ //@unlink($package_tgz);
+ //chdir($cwd);
+
+ //$log[$package_unique] .= ' Moved '.$package_tgz.' to '.$bundle_dir.' directory.'."\n";
+
+ // remove this package from stack
+ unset($packages[$pos]);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ $this->pkgs_unprocessed = $packages;
+
+ // If a temporary directory has been created for temporary package.xml files,
+ // then remove it now.
+ if(strlen($pgk_tmpdir)){
+ System::rm(array('-rf', $pgk_tmpdir));
+ }
+
+ // General info
+ $this->log = 'Destination: '.$bundle_dir."\n\n";
+
+ // compose log
+ foreach($log as $package => $info){
+ $this->log .= '['.$package.']'."\n";
+ $this->log .= $info;
+ $this->log .= "\n";
+ }
+ }
+
+ function getLog()
+ {
+ return $this->log;
+ }
+
+ function hasUnprocessedPkgs()
+ {
+ return @count($this->pkgs_unprocessed);
+ }
+
+ function getUnprocessedPkgs()
+ {
+ return $this->pkgs_unprocessed;
}
}
Index: package.xml
===================================================================
RCS file: /cvsroot/zzossinstaller/packages/com.zzoss.package.lib/package.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** package.xml 22 Dec 2003 17:15:46 -0000 1.1
--- package.xml 4 Jan 2004 13:26:55 -0000 1.2
***************
*** 20,30 ****
</maintainers>
<release>
! <version>1.0</version>
<date>{zi_release_date}</date>
<license url="http://www.gnu.org/licenses/lgpl.txt" version="2">LGPL</license>
<state>stable</state>
! <notes>Initial release.</notes>
<copyright>
! <holder year="{zi_copyright_year}" url="http://www.zzoss.com">ZZ/OSS</holder>
</copyright>
<filelist>
--- 20,35 ----
</maintainers>
<release>
! <version>1.1.0</version>
<date>{zi_release_date}</date>
<license url="http://www.gnu.org/licenses/lgpl.txt" version="2">LGPL</license>
<state>stable</state>
! <notes>
! <![CDATA[
! - added method packageSources() which moves or creates package archives to the specified directory from source directories
! - refreshPackages() now always refreshes the package registry, regardless if a flag has been set or not
! ]]>
! </notes>
<copyright>
! <holder year="2003-{zi_copyright_year}" url="http://www.zzoss.com">ZZ/OSS</holder>
</copyright>
<filelist>
***************
*** 33,36 ****
--- 38,42 ----
</filelist>
<deps>
+ <dep type="pkg" rel="ge" version="1.0.0">com.zzoss.filereplace.lib</dep>
<dep type="pkg" rel="ge" version="1.0">com.zzoss.config.lib</dep>
<dep type="pkg" rel="ge" version="0.4">com.zzoss.debug.lib</dep>
***************
*** 39,41 ****
--- 45,70 ----
</deps>
</release>
+ <changelog>
+ <release>
+ <version>1.0</version>
+ <date>2003-12-18</date>
+ <license url="http://www.gnu.org/licenses/lgpl.txt" version="2">LGPL</license>
+ <state>stable</state>
+ <notes>Initial release.</notes>
+ <copyright>
+ <holder year="2003" url="http://www.zzoss.com">ZZ/OSS</holder>
+ </copyright>
+ <filelist>
+ <file role="php" baseinstalldir="ZZOSS_Package" name="Dependency.php"/>
+ <file role="php" baseinstalldir="ZZOSS_Package" name="Package.php"/>
+ </filelist>
+ <deps>
+ <dep type="pkg" rel="ge" version="1.0">com.zzoss.installer.lib</dep>
+ <dep type="pkg" rel="ge" version="1.0">com.zzoss.config.lib</dep>
+ <dep type="pkg" rel="ge" version="0.4">com.zzoss.debug.lib</dep>
+ <dep type="pkg" rel="ge" version="1.3b3">PEAR</dep>
+ <dep type="pkg" rel="ge" version="1.1">Archive_Tar</dep>
+ </deps>
+ </release>
+ </changelog>
</package>
-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills. Sign up for IBM's
Free Linux Tutorials. Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click