]> Frank Brehm's Git Trees - my-stuff/postfix-maps.git/commitdiff
Hände-Weg-Ausgabe in die generierten Dateien reingeschrieben.
authorFrank Brehm <frank@brehm-online.com>
Tue, 10 Aug 2010 14:13:55 +0000 (14:13 +0000)
committerFrank Brehm <frank@brehm-online.com>
Tue, 10 Aug 2010 14:13:55 +0000 (14:13 +0000)
git-svn-id: http://svn.brehm-online.com/svn/my-stuff/postfix-maps/trunk@118 ec8d2aa5-1599-4edb-8739-2b3a1bc399aa

lib/FrBr/Postfix/App.pm

index 282c9433935cdc92abdaaaa6ce8f4fc6851753c9..bfacb4a22b39204dffd46f25fc748044feee2433 100644 (file)
@@ -818,6 +818,26 @@ sub do_mapping {
     }
     $self->debug( sprintf( "Maximallänge in Spalte '%s' von Mapping '%s': %s", $first_col, $mapname, ( $max_col_length // 'undef' ) ) ) if $self->verbose >= 3;
 
+    # Sonstige Informationen zur Resultsource beschaffen
+    my $table_name = $self->schema->source( $map->{'resultset'} )->from();
+    my $dsn        = $self->config->{'Model::Schema'}{'connect_info'}{'dsn'};
+    my ( $host, $port, $db );
+    if ( $dsn ) {
+        if ( $dsn =~ /host=([a-z0-9\-_\.]+)/i ) {
+            $host = $1;
+        }
+        if ( $db =~ /database=([a-z0-9\-_\.]+)/i ) {
+            $db = $1;
+        }
+        if ( $db =~ /port=(\d+)/i ) {
+            $db = $1;
+        }
+    }
+    $host //= 'localhost';
+    $db   //= 'vmail';
+    $port //= 3306;
+    $host .= " (Port " . $port . ")" if $port != 3306;
+
     # Erstellen der Arbeitsdatei
     $self->debug( sprintf( "Öffne Arbeitsdatei '%s' ...", $map->{'workfile'} ) ) if $self->verbose >= 2;
     unless ( open( FILE, ">", $map->{'workfile'}->stringify ) ) {
@@ -832,6 +852,9 @@ sub do_mapping {
     printf FILE "# %s\n", $txt;
     print  FILE "#\n";
     printf FILE "# Erstellt am: %s\n", strftime( '%Y-%m-%d %H:%M:%S', localtime() );
+    print  FILE encode_utf8( "#\n# ACHTUNG !!!!!\n#\n");
+    print  FILE encode_utf8( "# Bitte keine manuellen Änderungen an dieser Datei!\n" );
+    print  FILE encode_utf8( sprintf "# Zum Ändern bitte MySQL-Tabelle '%s' in der Datenbank '%s' auf %s editieren.\n", $table_name, $db, $host );
     print  FILE "#\n\n";
 
     # Nachgucken, ob es überhaupt Zeilen zu Schreiben gibt: