ALPM

 view release on metacpan or  search on metacpan

t/repos/repoadd.pl  view on Meta::CPAN

	$self;
}

sub addEntry
{
	my($self, $pkg) = @_;

	my $pi = $pkg->info;
	my $name = join q{-}, map { $_->[0] } @{$pi}{qw/name version/};

	my $dir = "$self->{'dir'}/$name";
	if(-d $dir){
		system 'rm' => '-r', "$dir";
		if($?){
			print STDERR "$PROG: failed to unlink dir: $dir\n";
			exit 1;
		}
	}
	mkdir $dir or die "mkdir: $!";

	my %deps;
	for my $dkey (@DepFields){
		$deps{$dkey} = delete $pi->{$dkey} if($pi->{$dkey});
	}
	$self->writeFile("$dir/depends", \%deps);

	$pi->{'filename'} = [ $pkg->fileName ];
	for my $fld (@DescFields){
		$pi->{$fld} = [] unless($pi->{$fld});
	}
	$self->writeFile("$dir/desc", $pi);
}

package main;

sub usage
{
	print STDERR "usage: $PROG [repo dir path] [package path]\n";
	exit 2;
}

sub main
{
	usage() if(@_ != 2);
	my($dbname, $pkgpath) = @_;

	my $dbdir = "$dbname/contents";
	unless(-d $dbdir){
		print STDERR "$PROG: dir named $dbname must exist in current directory\n";
		exit 1;
	}
	unless(-f $pkgpath){
		print STDERR "$PROG: $pkgpath is not a valid path\n";
		exit 1;
	}
	my $db = DBDir->fromPath($dbdir);
	my $pkg = PkgFile->fromPath($pkgpath);
	$db->addEntry($pkg);

	my $dest = "$dbname/" . $pkg->fileName;
	rename $pkgpath, $dest or die "rename: $!";

	return 0;
}

exit main(@ARGV);



( run in 0.731 second using v1.01-cache-2.11-cpan-97f6503c9c8 )