allow to replace archives in obs checkout

This commit is contained in:
Ralf Becker 2010-03-05 15:28:06 +00:00
parent 876cf07883
commit c97400f881

View File

@ -35,6 +35,7 @@ $config = array(
'freshclam' => '/usr/bin/freshclam', 'freshclam' => '/usr/bin/freshclam',
'gpg' => '/usr/bin/gpg', 'gpg' => '/usr/bin/gpg',
'packager' => 'build@stylite.de', 'packager' => 'build@stylite.de',
'obs' => false,
'skip' => array(), 'skip' => array(),
'run' => array('checkout','copy','virusscan','create','sign') 'run' => array('checkout','copy','virusscan','create','sign')
); );
@ -76,6 +77,13 @@ while(($arg = array_shift($argv)))
} }
break; break;
case 'obs':
if (!is_dir($value))
{
usage("Path '$value' not found!");
}
if (!in_array('obs',$config['run'])) $config['run'][] = 'obs';
// fall through
default: default:
$config[$name] = $value; $config[$name] = $value;
break; break;
@ -99,6 +107,34 @@ foreach(array_diff($config['run'],$config['skip']) as $func)
$func(); $func();
} }
/**
* Copy archive files to obs checkout and commit them
*
*/
function do_obs()
{
global $config,$verbose;
$n = 0;
foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($config['obs'])) as $path)
{
if (basename(dirname($path)) != '.osc' &&
preg_match('/\/('.preg_quote($config['packagename']).'[a-z-]*)-[0-9.-]+(\.tar\.(gz|bz2))$/',$path,$matches) &&
file_exists($new_name=$config['sourcedir'].'/'.$matches[1].'-'.$config['version'].'.'.$config['packaging'].$matches[2]))
{
if (basename($path) != basename($new_name))
{
unlink($path);
if ($verbose) echo "rm $path\n";
}
copy($new_name,dirname($path).'/'.basename($new_name));
if ($verbose) echo "cp $new_name ".dirname($path)."/\n";
++$n;
}
}
if ($n) echo "$n files replaced in $config[obs] --> commit them now: osc addremove; osc commit\n";
}
/** /**
* Sign sha1sum file * Sign sha1sum file
*/ */