return dir->new( '/etc/postfix' );
}
+#-------------------------
+
+=head2 work_dir
+
+Arbeitsverzeichnis zum zeitweiligen Auschecken der Map-Dateien
+
+=cut
+
+has 'work_dir' => (
+ is => 'rw',
+ isa => 'Path::Class::Dir',
+ traits => [ 'Getopt' ],
+ coerce => 1,
+ lazy => 1,
+ required => 1,
+ builder => '_build_workdir',
+ documentation => 'Arbeitsverzeichnis zum zeitweiligen Auschecken, absolut oder relativ zu postfix_dir',
+ cmd_aliases => [ 'work' ],
+);
+
+#------
+
+sub _build_workdir {
+ return dir->new( 'work' );
+}
+
#---------------------------------------------------------------------------
# Ändern der Eigenschaften einiger geerbter Attribute
sub _build_default_config {
return {
postfix_dir => '/etc/postfix',
+ work_dir => 'work',
'Model::Schema' => {
'schema_class' => 'FrBr::Postfix::Db',
'connect_info' => {
$self->debug( "Werte Backup-Konfigurationsdinge aus ..." );
return unless $self->config and keys %{ $self->config };
- my @ConfigKeys = qw( postfix_dir );
+ my @ConfigKeys = qw( postfix_dir work_dir );
for my $key ( keys %{ $self->config } ) {
$self->debug( sprintf( "Setze Postfix-Dir auf '%s' ...", $d ) ) if $self->verbose >= 2;
}
+ unless ( $self->work_dir->is_absolute ) {
+ my $d = $self->work_dir;
+ $d = dir( $self->postfix_dir, $self->work_dir )->absolute;
+ $self->work_dir($d);
+ $self->debug( sprintf( "Setze Arbeitsverzeichnis auf '%s' ...", $d ) ) if $self->verbose >= 2;
+ }
};
if ( $self->verbose >= 2 ) {
my $tmp;
- for my $f ( 'postfix_dir', ) {
+ for my $f ( 'postfix_dir', 'work_dir', ) {
$tmp = $self->$f();
}
$self->info( "Beginne Checkout der Mappings." );
+ # nur Root darf das Skript in der Produktionsversion ausführen
+ if ( $self->production_state eq 'prod' and $> != 0 ) {
+ $self->warn( "Nur root darf das Skript in der Produktionsversion ausführen." );
+ exit 1;
+ }
+
+ unless ( -d $self->postfix_dir ) {
+ $self->error( sprintf( "Postfix-Verzeichnis '%s' existiert nicht oder ist kein Verzeichnis.", $self->postfix_dir ) );
+ exit 2;
+ }
+
+ $self->info( "Ende der Arbeit." );
+
}
#---------------------------------