diff options
-rw-r--r-- | lib/Youri/Submit/Action/Archive.pm | 10 | ||||
-rw-r--r-- | lib/Youri/Submit/Action/Bugzilla.pm | 6 | ||||
-rw-r--r-- | lib/Youri/Submit/Action/CVS.pm | 6 | ||||
-rw-r--r-- | lib/Youri/Submit/Action/Clean.pm | 8 | ||||
-rw-r--r-- | lib/Youri/Submit/Action/Install.pm | 14 | ||||
-rw-r--r-- | lib/Youri/Submit/Action/Link.pm | 38 | ||||
-rw-r--r-- | lib/Youri/Submit/Action/Mail.pm | 47 | ||||
-rw-r--r-- | lib/Youri/Submit/Action/RSS.pm | 8 | ||||
-rw-r--r-- | lib/Youri/Submit/Action/Sign.pm | 6 |
9 files changed, 85 insertions, 58 deletions
diff --git a/lib/Youri/Submit/Action/Archive.pm b/lib/Youri/Submit/Action/Archive.pm index d16deeb..721eab9 100644 --- a/lib/Youri/Submit/Action/Archive.pm +++ b/lib/Youri/Submit/Action/Archive.pm @@ -1,9 +1,9 @@ # $Id$ -package Youri::Upload::Action::Archive; +package Youri::Submit::Action::Archive; =head1 NAME -Youri::Upload::Action::Archive - Old revisions archiving +Youri::Submit::Action::Archive - Old revisions archiving =head1 DESCRIPTION @@ -14,7 +14,7 @@ This action plugin ensures archiving of old package revisions. use warnings; use strict; use Carp; -use base qw/Youri::Upload::Action/; +use base qw/Youri::Submit::Action/; sub _init { my $self = shift; @@ -29,7 +29,7 @@ sub _init { sub run { my ($self, $package, $repository, $target, $define) = @_; croak "Not a class method" unless ref $self; - + my $section = $repository->_get_section($package, $target, $define); my $main_section = $repository->_get_main_section($package, $target, $define); print "section $section main_section $main_section\n" if $self->{_verbose}; @@ -59,7 +59,7 @@ sub run { # install file to new location system("install -m $self->{_perms} $file $dest"); } - } + } } =head1 COPYRIGHT AND LICENSE diff --git a/lib/Youri/Submit/Action/Bugzilla.pm b/lib/Youri/Submit/Action/Bugzilla.pm index 17d6b1c..7c46eb1 100644 --- a/lib/Youri/Submit/Action/Bugzilla.pm +++ b/lib/Youri/Submit/Action/Bugzilla.pm @@ -1,9 +1,9 @@ # $Id$ -package Youri::Upload::Action::Bugzilla; +package Youri::Submit::Action::Bugzilla; =head1 NAME -Youri::Upload::Action::Bugzilla - Bugzilla synchronisation +Youri::Submit::Action::Bugzilla - Bugzilla synchronisation =head1 DESCRIPTION @@ -15,7 +15,7 @@ use warnings; use strict; use Carp; use Youri::Bugzilla; -use base qw/Youri::Upload::Action/; +use base qw/Youri::Submit::Action/; sub _init { my $self = shift; diff --git a/lib/Youri/Submit/Action/CVS.pm b/lib/Youri/Submit/Action/CVS.pm index c0488ea..b9a3741 100644 --- a/lib/Youri/Submit/Action/CVS.pm +++ b/lib/Youri/Submit/Action/CVS.pm @@ -1,9 +1,9 @@ # $Id$ -package Youri::Upload::Action::CVS; +package Youri::Submit::Action::CVS; =head1 NAME -Youri::Upload::Action::CVS - CVS versionning +Youri::Submit::Action::CVS - CVS versionning =head1 DESCRIPTION @@ -16,7 +16,7 @@ use strict; use Carp; use Cwd; use File::Temp qw/tempdir/; -use base qw/Youri::Upload::Action/; +use base qw/Youri::Submit::Action/; sub _init { my $self = shift; diff --git a/lib/Youri/Submit/Action/Clean.pm b/lib/Youri/Submit/Action/Clean.pm index 8564756..51bfe51 100644 --- a/lib/Youri/Submit/Action/Clean.pm +++ b/lib/Youri/Submit/Action/Clean.pm @@ -1,9 +1,9 @@ # $Id: /local/youri/soft/trunk/lib/Youri/Upload/Action/Backup.pm 867 2006-01-29T20:47:27.830648Z guillaume $ -package Youri::Upload::Action::Clean; +package Youri::Submit::Action::Clean; =head1 NAME -Youri::Upload::Action::Clean - Old revisions cleanup +Youri::Submit::Action::Clean - Old revisions cleanup =head1 DESCRIPTION @@ -14,7 +14,7 @@ This action plugin ensures cleanup of old package revisions. use warnings; use strict; use Carp; -use base qw/Youri::Upload::Action/; +use base qw/Youri::Submit::Action/; sub run { my ($self, $package, $repository, $target, $define) = @_; @@ -23,7 +23,7 @@ sub run { foreach my $replaced_package ( $repository->get_replaced_packages($package, $target, $define) ) { - my $file = $replaced_package->get_file(); + my $file = $replaced_package->as_file(); print "deleting file $file\n" if $self->{_verbose}; unlink $file unless $self->{_test}; } diff --git a/lib/Youri/Submit/Action/Install.pm b/lib/Youri/Submit/Action/Install.pm index df65991..e665476 100644 --- a/lib/Youri/Submit/Action/Install.pm +++ b/lib/Youri/Submit/Action/Install.pm @@ -1,9 +1,9 @@ # $Id$ -package Youri::Upload::Action::Install; +package Youri::Submit::Action::Install; =head1 NAME -Youri::Upload::Action::Install - Package installation +Youri::Submit::Action::Install - Package installation =head1 DESCRIPTION @@ -14,7 +14,7 @@ This action plugin ensures installation of new package revisions. use warnings; use strict; use Carp; -use base qw/Youri::Upload::Action/; +use base qw/Youri::Submit::Action/; sub _init { my $self = shift; @@ -32,22 +32,22 @@ sub run { my ($self, $package, $repository, $target, $define) = @_; croak "Not a class method" unless ref $self; - my $file = $package->get_file(); + my $file = $package->as_file(); my $rpm = $package->get_file_name(); my $dest = $repository->get_install_dir($package, $target, $define); # FIXME remove prefix this should be done by a function $rpm =~ s/^\d{14}\.\w*\.\w+\.\d+_//; $rpm =~ s/^\@\d+://; - print "installing file $file to $dest/$rpm\n" if $self->{_verbose}; + print "installing file $file to $dest\n" if $self->{_verbose}; unless ($self->{_test}) { # create destination dir if needed - system("install -d -m " . ($self->{_perms} + 111) . " $dest/") + system("install -d -m " . ($self->{_perms} + 111) . " $dest") unless -d $dest; # install file to new location - system("install -m $self->{_perms} $file $dest/$rpm"); + system("install -m $self->{_perms} $file $dest"); } $package->{_file} = "$dest/$rpm"; print "deleting file $file\n" if $self->{_verbose}; diff --git a/lib/Youri/Submit/Action/Link.pm b/lib/Youri/Submit/Action/Link.pm index eaadec1..b80d7e8 100644 --- a/lib/Youri/Submit/Action/Link.pm +++ b/lib/Youri/Submit/Action/Link.pm @@ -1,9 +1,9 @@ # $Id: /local/youri/soft/trunk/lib/Youri/Upload/Action/Sign.pm 1543 2006-03-21T20:22:54.334939Z guillaume $ -package Youri::Upload::Action::Link; +package Youri::Submit::Action::Link; =head1 NAME -Youri::Upload::Action::Link - Noarch packages linking +Youri::Submit::Action::Link - Noarch packages linking =head1 DESCRIPTION @@ -15,8 +15,9 @@ directories. use warnings; use strict; use Carp; +use Cwd; use File::Spec; -use base qw/Youri::Upload::Action/; +use base qw/Youri::Submit::Action/; sub _init { my $self = shift; @@ -35,20 +36,29 @@ sub run { # only needed for noarch packages return unless $package->get_arch() eq 'noarch'; - my $dest_dir = $repository->get_install_dir($package, $target, $define); - my (undef, $parent_dir, $relative_dir) = File::Spec->splitpath($dest_dir); + my $default_dir = $repository->get_install_dir($package, $target, $define); my $file = $package->get_file_name(); - foreach my $other_dir (grep { -d } <$parent_dir/*>) { - next if $other_dir eq $dest_dir; - chdir $other_dir; - my $source_file = "../$relative_dir/$file"; - if ($self->{_symbolic}) { - symlink $source_file, $file unless $self->{_test}; - } else { - link $source_file, $file unless $self->{_test}; + foreach my $arch ($repository->get_extra_arches()) { + # compute installation target, forcing arch + my $other_dir = $repository->get_install_dir( + $package, + $target, + $define, + { arch => $arch } + ); + + if (! $self->{_test}) { + my $current_dir = cwd(); + cd $other_dir; + my $default_file = File::Spec->abs2rel($default_dir) . '/' . $file; + if ($self->{_symbolic}) { + symlink $default_file, $file; + } else { + link $default_file, $file; + } + cd $current_dir; } - chdir '..'; } } diff --git a/lib/Youri/Submit/Action/Mail.pm b/lib/Youri/Submit/Action/Mail.pm index 7ef8380..5df20e6 100644 --- a/lib/Youri/Submit/Action/Mail.pm +++ b/lib/Youri/Submit/Action/Mail.pm @@ -1,9 +1,9 @@ # $Id$ -package Youri::Upload::Action::Mail; +package Youri::Submit::Action::Mail; =head1 NAME -Youri::Upload::Action::Mail - Mail notification +Youri::Submit::Action::Mail - Mail notification =head1 DESCRIPTION @@ -17,7 +17,7 @@ use MIME::Entity; use Encode qw/from_to/; use Carp; use Youri::Package; -use base qw/Youri::Upload::Action/; +use base qw/Youri::Submit::Action/; sub _init { my $self = shift; @@ -57,22 +57,12 @@ sub run { return unless $package->is_source(); my $from = $package->get_packager(); - my $section = $repository->_get_section($package, $target, $define); # force from adress if defined $from =~ s/<.*>/<$self->{_from}>/ if $self->{_from}; - my $subject = - ($self->{_prefix} ? '[' . $self->{_prefix} . '] ' : '' ) . "$target " . ($section ? "$section " : '') . - $package->get_revision_name(); - my $information = $package->get_information(); - my $last_change = $package->get_last_change(); - my $content = - $information . "\n" . - $last_change->[Youri::Package::CHANGE_AUTHOR] . ":\n" . - join( - '', map { "- $_\n" } @{$last_change->[Youri::Package::CHANGE_TEXT]} - ); + my $subject = $self->get_subject($package, $repository, $target, $define); + my $content = $self->get_content($package, $repository, $target, $define); # ensure proper codeset conversion # for informations coming from package @@ -105,6 +95,33 @@ sub run { } +sub get_subject { + my ($self, $package, $repository, $target, $define) = @_; + croak "Not a class method" unless ref $self; + + my $section = $repository->_get_section($package, $target, $define); + return + ($self->{_prefix} ? '[' . $self->{_prefix} . '] ' : '' ) . + . "$target " . ($section ? "$section " : '' ) . + $package->as_formated_string('%{name}-%{version}-%{release}'); +} + +sub get_content { + my ($self, $package, $repository, $target, $define) = @_; + croak "Not a class method" unless ref $self; + + my $information = $package->get_information(); + my $last_change = $package->get_last_change(); + + return + $information . "\n" . + $last_change->[Youri::Package::CHANGE_AUTHOR] . ":\n" . + join( + '', map { "- $_\n" } @{$last_change->[Youri::Package::CHANGE_TEXT]} + ); +} + + =head1 COPYRIGHT AND LICENSE Copyright (C) 2002-2006, YOURI project diff --git a/lib/Youri/Submit/Action/RSS.pm b/lib/Youri/Submit/Action/RSS.pm index b1f484f..9d32911 100644 --- a/lib/Youri/Submit/Action/RSS.pm +++ b/lib/Youri/Submit/Action/RSS.pm @@ -1,9 +1,9 @@ # $Id$ -package Youri::Upload::Action::RSS; +package Youri::Submit::Action::RSS; =head1 NAME -Youri::Upload::Action::RSS - RSS notification +Youri::Submit::Action::RSS - RSS notification =head1 DESCRIPTION @@ -16,7 +16,7 @@ use strict; use XML::RSS; use Encode qw/from_to/; use Carp; -use base qw/Youri::Upload::Action/; +use base qw/Youri::Submit::Action/; sub _init { my $self = shift; @@ -48,7 +48,7 @@ sub run { return unless $package->is_source(); - my $subject = $package->get_revision_name(); + my $subject = $package->as_formated_string('%{name}-%{version}-%{release}'); my $content = $package->get_information(); $content =~ s/$/<br\/>/mg; diff --git a/lib/Youri/Submit/Action/Sign.pm b/lib/Youri/Submit/Action/Sign.pm index 4a92fa5..7303f14 100644 --- a/lib/Youri/Submit/Action/Sign.pm +++ b/lib/Youri/Submit/Action/Sign.pm @@ -1,9 +1,9 @@ # $Id$ -package Youri::Upload::Action::Sign; +package Youri::Submit::Action::Sign; =head1 NAME -Youri::Upload::Action::Sign - GPG signature +Youri::Submit::Action::Sign - GPG signature =head1 DESCRIPTION @@ -14,7 +14,7 @@ This action plugin ensures GPG signature of packages. use warnings; use strict; use Carp; -use base qw/Youri::Upload::Action/; +use base qw/Youri::Submit::Action/; sub _init { my $self = shift; |