[Rt-commit] r7187 - rt/branches/3.7-EXPERIMENTAL-TUNIS/sbin

ruz at bestpractical.com ruz at bestpractical.com
Wed Mar 7 19:47:24 EST 2007


Author: ruz
Date: Wed Mar  7 19:47:24 2007
New Revision: 7187

Modified:
   rt/branches/3.7-EXPERIMENTAL-TUNIS/sbin/rt-setup-database.in

Log:
* add support for RT_DBA_USER and RT_DBA_PASSWORD env variables

Modified: rt/branches/3.7-EXPERIMENTAL-TUNIS/sbin/rt-setup-database.in
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL-TUNIS/sbin/rt-setup-database.in	(original)
+++ rt/branches/3.7-EXPERIMENTAL-TUNIS/sbin/rt-setup-database.in	Wed Mar  7 19:47:24 2007
@@ -45,7 +45,9 @@
 #
 # END BPS TAGGED BLOCK }}}
 use strict;
-use vars qw($PROMPT $VERSION $Nobody $SystemUser $item);
+use warnings;
+
+use vars qw($Nobody $SystemUser $item);
 
 use lib ("@LOCAL_LIB_PATH@", "@RT_LIB_PATH@");
 
@@ -77,6 +79,7 @@
 
 $| = 1;    #unbuffer that output.
 
+# set options from environment
 foreach my $key(qw(Type Host Name User Password)) {
     next unless exists $ENV{ 'RT_DB_'. uc $key };
     RT->Config->Set( "Database$key", $ENV{ 'RT_DB_'. uc $key });
@@ -88,9 +91,12 @@
 my $db_user = RT->Config->Get('DatabaseUser') || '';
 my $db_pass = RT->Config->Get('DatabasePassword') || '';
 
+my $dba_user = $args{'dba'} || $ENV{'RT_DBA_USER'} || $db_user || '';
+my $dba_pass = $args{'dba-password'} || $ENV{'RT_DBA_PASSWORD'} || '';
+
 if ( $args{'prompt-for-dba-password'} ) {
-    $args{'dba-password'} = get_dba_password();
-    chomp( $args{'dba-password'} );
+    $dba_pass = get_dba_password();
+    chomp $dba_pass;
 }
 
 require RT::Handle;
@@ -99,10 +105,10 @@
 if ( $args{'action'} eq 'init' ) {
     $dbh = get_system_dbh();
     print "Now creating a database for RT.\n";
-    if ( $db_type ne 'Oracle' || $args{'dba'} ne $db_user ) {
+    if ( $db_type ne 'Oracle' || $dba_user ne $db_user ) {
         RT::Handle->create_db($dbh);
     } else {
-        print "...skipped as ".$args{'dba'} ." is not " . $db_user ." or we're working with Oracle.\n";
+        print "...skipped as $dba_user is not $db_user or we're working with Oracle.\n";
     }
 
     check_db_compatibility();
@@ -115,7 +121,7 @@
         if ( $db_type eq "Oracle" ) {
             $dbh = get_rt_dbh();
         } else {	
-            $dbh = get_rt_dbh( $args{'dba'}, $args{'dba-password'} );
+            $dbh = get_rt_dbh( $dba_user, $dba_pass );
         }
     }
     RT->ConnectToDatabase;
@@ -138,11 +144,11 @@
     $RT::Handle->insert_data( $args{'datafile'} || ($args{'datadir'}."/content") );
 }
 elsif ( $args{'action'} eq 'acl' ) {
-    $dbh = get_rt_dbh( $args{'dba'}, $args{'dba-password'} );
+    $dbh = get_rt_dbh( $dba_user, $dba_pass );
     $RT::Handle->insert_acl($dbh, $args{'datadir'});
 }
 elsif ( $args{'action'} eq 'schema' ) {
-    $dbh = get_rt_dbh( $args{'dba'}, $args{'dba-password'} );
+    $dbh = get_rt_dbh( $dba_user, $dba_pass );
     check_db_compatibility();
     $RT::Handle->insert_schema($dbh, $args{'datadir'});
 }
@@ -198,11 +204,8 @@
 
 sub get_dba_password {
     print "In order to create or update your RT database,";
-    print "this script needs to connect to your "
-      . $db_type
-      . " instance on "
-      . $db_host . " as "
-      . $args{'dba'} . ".\n";
+        . " this script needs to connect to your "
+        . " $db_type instance on $db_host as $dba_user\n";
     print "Please specify that user's database password below. If the user has no database\n";
     print "password, just press return.\n\n";
     print "Password: ";
@@ -217,12 +220,12 @@
 
 Returns L<DBI> database handle connected to B<system> with DBA credentials.
 
-See also L</get_system_dsn>.
+See also L<RT::Handle/SystemDSN>.
 
 =cut
 
 sub get_system_dbh {
-    return _get_dbh( RT::Handle->get_system_dsn(), $args{'dba'}, $args{'dba-password'} );
+    return _get_dbh( RT::Handle->get_system_dsn(), $dba_user, $dba_pass );
 }
 
 =head2 get_rt_dbh [USER, PASSWORD]


More information about the Rt-commit mailing list