Current File : //opt/RZphp74/includes/PhpDocumentor/scripts/add_cvs.php |
<?php
//
// +------------------------------------------------------------------------+
// | phpDocumentor |
// +------------------------------------------------------------------------+
// | Copyright (c) 2000-2003 Joshua Eichorn, Gregory Beaver |
// | Email jeichorn@phpdoc.org, cellog@phpdoc.org |
// | Web http://www.phpdoc.org |
// | Mirror http://phpdocu.sourceforge.net/ |
// | PEAR http://pear.php.net/package/PhpDocumentor |
// +------------------------------------------------------------------------+
// | This source file is subject to version 3.00 of the PHP License, |
// | that is available at http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +------------------------------------------------------------------------+
//
/**
* CVS file adding iterator
*
* This file iterates over a directory, and adds everything to CVS that is
* found, ignoring any error messages, until all files in each directory
* and subdirectory have been added to cvs. It then commits the files to cvs
* @package phpDocumentor
* @author Greg Beaver <cellog@php.net>
* @copyright Copyright 2003, Greg Beaver
* @version 1.0
*/
/**#@+
* phpDocumentor include files. If you don't have phpDocumentor, go get it!
* Your php life will be changed forever
*/
$dir = realpath(dirname(__FILE__).'/..');
require_once("$dir/phpDocumentor/common.inc.php");
require_once("$dir/phpDocumentor/Io.inc");
/**#@-*/
/**
* Physical location on this computer of the package to parse
* @global string $cvsadd_directory
*/
$cvsadd_directory = realpath('.');
/**
* Comma-separated list of files and directories to ignore
*
* This uses wildcards * and ? to remove extra files/directories that are
* not part of the package or release
* @global string $ignore
*/
$ignore = array('CVS/');
/******************************************************************************
* Don't change anything below here unless you're adventuresome *
*******************************************************************************/
/**
* @global Io $files
*/
$files = new Io;
$allfiles = $files->dirList($cvsadd_directory);
/**#@+
* Sorting functions for the file list
* @param string
* @param string
*/
function sortfiles($a, $b)
{
return strnatcasecmp($a['file'],$b['file']);
}
function mystrucsort($a, $b)
{
if (is_numeric($a) && is_string($b)) return 1;
if (is_numeric($b) && is_string($a)) return -1;
if (is_numeric($a) && is_numeric($b))
{
if ($a > $b) return 1;
if ($a < $b) return -1;
if ($a == $b) return 0;
}
return strnatcasecmp($a,$b);
}
/**#@-*/
$struc = array();
foreach($allfiles as $file)
{
if ($files->checkIgnore(basename($file),dirname($file),$ignore, false))
{
// print 'Ignoring '.$file."<br>\n";
continue;
}
$path = substr(dirname($file),strlen(str_replace('\\','/',realpath($cvsadd_directory)))+1);
if (!$path) $path = '/';
$file = basename($file);
$ext = array_pop(explode('.',$file));
if (strlen($ext) == strlen($file)) $ext = '';
$struc[$path][] = array('file' => $file,'ext' => $ext);
}
uksort($struc,'strnatcasecmp');
foreach($struc as $key => $ind)
{
usort($ind,'sortfiles');
$struc[$key] = $ind;
}
$tempstruc = $struc;
$struc = array('/' => $tempstruc['/']);
$bv = 0;
foreach($tempstruc as $key => $ind)
{
$save = $key;
if ($key != '/')
{
$struc['/'] = setup_dirs($struc['/'], explode('/',$key), $tempstruc[$key]);
}
}
uksort($struc['/'],'mystrucsort');
/**
* Recursively add files to cvs
* @param array the sorted directory structure
*/
function addToCVS($struc)
{
foreach($struc as $dir => $files)
{
if ($dir === '/')
{
print 'processing '.$dir . "\n";
addToCVS($struc[$dir]);
return;
} else
{
if (!isset($files['file']))
{
print 'adding '.$dir . "\n";
system('cvs add '.$dir);
chdir($dir);
addToCVS($files);
chdir('..');
} else
{
print 'adding '.$files['file'] . "\n";
system('cvs add '.$files['file']);
system('cvs commit -m "" '.$files['file']);
}
}
}
}
addToCVS($struc);
print "\n".'done';
?>