# $Id$ package Youri::Submit::Post::RunOnModifiedMedia; =head1 NAME Youri::Submit::Post::RunOnModifiedMedia - runs a command on changed directories =head1 DESCRIPTION Run a command on changed directories =cut use warnings; use strict; use Carp; use base qw/Youri::Submit::Post/; sub _init { my $self = shift; my %options = ( user => '', host => '', source => '', destination => '', @_ ); foreach my $var ('command') { $self->{"_$var"} = $options{$var}; } } sub run { my ($self, $repository, $target, $define) = @_; croak "Not a class method" unless ref $self; my $root = $repository->get_install_root(); my @changed = @{$repository->get_install_dir_changed($target)}; if (!@changed) { print "nothing to do\n"; return; } foreach my $dir (@changed) { my $cmd = "time $self->{_command} $dir"; print "$cmd\n"; system($cmd) == 0 or print "ERROR: $cmd failed\n"; } return; } =head1 COPYRIGHT AND LICENSE Copyright (C) 2002-2006, Mandriva This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut 1;