From 4b0fea24cd0ceff3dcade46331562bb18a734eb9 Mon Sep 17 00:00:00 2001 From: dbs Date: Tue, 28 Oct 2008 03:11:22 +0000 Subject: [PATCH] Teach eg_db_config.pl to generate offline-config.pl Make eg_db_config.pl generate timestamped backups of opensrf.xml Clean up configure options and output Remove no-longer-necessary offline-config.pl.in git-svn-id: svn://svn.open-ils.org/ILS/trunk@10930 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Makefile.am | 7 --- Open-ILS/src/offline/offline-config.pl.in | 5 -- Open-ILS/src/support-scripts/eg_db_config.pl | 66 +++++++++++++++++--- configure.ac | 65 ++++++++++--------- 4 files changed, 89 insertions(+), 54 deletions(-) delete mode 100644 Open-ILS/src/offline/offline-config.pl.in diff --git a/Makefile.am b/Makefile.am index 8659466fa2..5b0cf53693 100644 --- a/Makefile.am +++ b/Makefile.am @@ -37,13 +37,6 @@ export LIBXML2_HEADERS = @LIBXML2_HEADERS@ export DBI_LIBS = @DBI_LIBS@ export OPENSRF_HEADERS = @OPENSRF_HEADERS@ export OPENSRF_LIBS = @OPENSRF_LIBS@ -#export DBDRVR = @DBDRVR@ -#export DBHOST = @DBHOST@ -#export DBPORT = @DBPORT@ -#export DBNAME = @DBNAME@ -#export DBUSER = @DBUSER@ -#export DBPW = @DBPW@ -#export DBVER = @DBVER@ SUBDIRS = Open-ILS/src diff --git a/Open-ILS/src/offline/offline-config.pl.in b/Open-ILS/src/offline/offline-config.pl.in deleted file mode 100644 index 068b0c3291..0000000000 --- a/Open-ILS/src/offline/offline-config.pl.in +++ /dev/null @@ -1,5 +0,0 @@ -$main::config{base_dir} = '@localstatedir@/data/offline/'; -$main::config{bootstrap} = '@sysconfdir@/opensrf_core.xml'; -$main::config{dsn} = 'dbi:@DBDRVR@:host=@DBHOST@;dbname=@DBNAME@;port=@DBPORT@'; -$main::config{usr} = '@DBUSER@'; -$main::config{pw} = '@DBPW@'; diff --git a/Open-ILS/src/support-scripts/eg_db_config.pl b/Open-ILS/src/support-scripts/eg_db_config.pl index f012448c6b..2e3dcacd21 100644 --- a/Open-ILS/src/support-scripts/eg_db_config.pl +++ b/Open-ILS/src/support-scripts/eg_db_config.pl @@ -28,8 +28,13 @@ my ($dbhost, $dbport, $dbname, $dbuser, $dbpw, $help); my $config_file = ''; my $build_db_sh = ''; my $bootstrap_file = ''; +my $offline_file = ''; +my $prefix = ''; +my $sysconfdir = ''; my @services; +my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); + # Get the directory for this script my $script_dir = dirname($0); @@ -61,10 +66,12 @@ sub update_config { } } - if (copy($config_file, "$config_file.bak")) { - print "Backed up original configuration file to '$config_file.bak'\n"; + my $timestamp = sprintf("%d.%d.%d.%d.%d.%d", + $year + 1900, $mon +1, $mday, $hour, $min, $sec); + if (copy($config_file, "$config_file.$timestamp")) { + print "Backed up original configuration file to '$config_file.$timestamp'\n"; } else { - print STDERR "Unable to write to '$config_file.bak'; bailed out.\n"; + print STDERR "Unable to write to '$config_file.$timestamp'; bailed out.\n"; } $opensrf_config->toFile($config_file) or @@ -77,7 +84,7 @@ sub create_db_bootstrap { open(FH, '>', $setup) or die "Could not write database setup to $setup\n"; - print "Writing database bootstrapping configuration to $setup...\n"; + print "Writing database bootstrapping configuration to $setup\n"; printf FH "\$main::config{dsn} = 'dbi:Pg:host=%s;dbname=%s;port=%d';\n", $settings->{host}, $settings->{db}, $settings->{port}; @@ -89,6 +96,25 @@ sub create_db_bootstrap { close(FH); } +# write out the offline config +sub create_offline_config { + my ($setup, $settings) = @_; + + open(FH, '>', $setup) or die "Could not write offline database setup to $setup\n"; + + print "Writing offline database configuration to $setup\n"; + + printf FH "\$main::config{base_dir} = '%s/var/data/offline/';\n", $prefix; + printf FH "\$main::config{bootstrap} = '%s/opensrf_core.xml';\n", $sysconfdir; + + printf FH "\$main::config{dsn} = 'dbi:Pg:host=%s;dbname=%s;port=%d';\n", + $settings->{host}, $settings->{db}, $settings->{port}; + + printf FH "\$main::config{usr} = '%s';\n", $settings->{user}; + printf FH "\$main::config{pw} = '%s';\n", $settings->{pw}; + + close(FH); +} # Extracts database settings from opensrf.xml sub get_settings { my $settings = shift; @@ -122,12 +148,14 @@ sub create_schema { } my $bootstrap; +my $offline; my $cschema; my $uconfig; my %settings; GetOptions("create-schema" => \$cschema, "create-bootstrap" => \$bootstrap, + "create-offline" => \$offline, "update-config" => \$uconfig, "bootstrap-file=s" => \$bootstrap_file, "config-file=s" => \$config_file, @@ -150,7 +178,14 @@ my $eg_config = File::Spec->catfile($script_dir, '../extras/eg_config'); if (!$config_file) { my @temp = `$eg_config --sysconfdir`; chomp $temp[0]; - $config_file = File::Spec->catfile($temp[0], "opensrf.xml"); + $sysconfdir = $temp[0]; + $config_file = File::Spec->catfile($sysconfdir, "opensrf.xml"); +} + +if (!$prefix) { + my @temp = `$eg_config --prefix`; + chomp $temp[0]; + $prefix = $temp[0]; } if (!$build_db_sh) { @@ -158,7 +193,11 @@ if (!$build_db_sh) { } if (!$bootstrap_file) { - $bootstrap_file = ('/openils/var/cgi-bin/live-db-setup.pl'); + $bootstrap_file = File::Spec->catfile($sysconfdir, 'live-db-setup.pl'); +} + +if (!$offline_file) { + $offline_file = File::Spec->catfile($sysconfdir, 'offline-config.pl'); } unless (-e $build_db_sh) { die "Error: $build_db_sh does not exist. \n"; } @@ -171,8 +210,9 @@ get_settings(\%settings); if ($cschema) { create_schema(\%settings); } if ($bootstrap) { create_db_bootstrap($bootstrap_file, \%settings); } +if ($offline) { create_offline_config($offline_file, \%settings); } -if ((!$cschema && !$uconfig && !$bootstrap) || $help) { +if ((!$cschema && !$uconfig && !$bootstrap && !$offline) || $help) { print <