required => 1,
builder => '_build_postfixdir',
documentation => 'Stammverzeichnis der Anwendung',
+ cmd_flag => 'postfix-dir',
cmd_aliases => [ 'postfix' ],
);
required => 1,
builder => '_build_workdir',
documentation => 'Arbeitsverzeichnis zum zeitweiligen Auschecken, absolut oder relativ zu postfix_dir',
+ cmd_flag => 'work-dir',
cmd_aliases => [ 'work' ],
);
#-----------------------------------------
+=head2 force_action
+
+Sollen die Map-Dateien geschrieben werden, auch wenn sie sich nicht geändert haben?
+
+=cut
+
+has 'force_action' => (
+ is => 'rw',
+ isa => 'Bool',
+ traits => [ 'Getopt' ],
+ lazy => 1,
+ builder => '_build_force_action',
+ documentation => 'Sollen die Map-Dateien geschrieben werden, auch wenn sie sich nicht geändert haben?',
+ cmd_flag => 'force-action',
+ cmd_aliases => [ 'f', 'force', ],
+);
+
+#------
+
+sub _build_force_action {
+ return 0;
+}
+
+#-----------------------------------------
+
=head2 valid_maptypes
HashRef mit allen gültigen Map-Typen
my $self = shift;
$self->info( "Beginne Checkout der Mappings." );
+ $self->info( "Testmodus - keine scharfen Änderungen." ) if $self->testmode;
# nur Root darf das Skript in der Produktionsversion ausführen
if ( $self->production_state eq 'prod' and $> != 0 ) {
my $binary = $self->postfix_binary;
$changed = 1 unless -f $map->{'mapfile'};
- $changed = 1 if $self->_diff_files( $map->{'workfile'}, $map->{'mapfile'}, $map->{'text_type'} );
- $self->debug( sprintf( "Mapping '%s' hat sich %s.", $mapname, ( $changed ? 'GEÄNDERT' : 'NICHT VERÄNDERT' ) ) );
+ if ( $self->force_action ) {
+ $changed = 1
+ }
+ else {
+ $changed = 1 if $self->_diff_files( $map->{'workfile'}, $map->{'mapfile'}, $map->{'text_type'} );
+ $self->debug( sprintf( "Mapping '%s' hat sich %s.", $mapname, ( $changed ? 'GEÄNDERT' : 'NICHT VERÄNDERT' ) ) );
+ }
if ( $changed ) {
$self->info( sprintf( "Aktualisiere Mapping '%s' in Datei '%s' ...", $mapname, $map->{'mapfile'} ) );
$self->debug( sprintf( "Kopiere Datei '%s' nach '%s' ...", $map->{'workfile'}, $map->{'mapfile'} ) );
- copy $map->{'workfile'}, $map->{'mapfile'};
+
+ copy $map->{'workfile'}, $map->{'mapfile'} unless $self->testmode;
if ( $map->{'exec_map'} ) {
my $cmd = $map->{'text_type'} eq 'aliases' ? $binary->{'postalias'} : $binary->{'postmap'};
my @Args = ( $cmd, $map->{'db_type'} . ":" . $map->{'mapfile'} );
$self->debug( sprintf( "Führe Kommando aus: '%s'", join( " ", @Args ) ) );
- unless ( system(@Args) == 0 ) {
- $self->error( sprintf( "Fehler beim Ausführen von '%s'.", join( " ", @Args ) ) );
- return undef;
+ unless ( $self->testmode ) {
+ unless ( system(@Args) == 0 ) {
+ $self->error( sprintf( "Fehler beim Ausführen von '%s'.", join( " ", @Args ) ) );
+ return undef;
+ }
}
}