#!/data/wre/prereqs/bin/perl use strict; use warnings; use lib '/data/wre/lib'; #use Getopt::Long (); #use Pod::Usage; #Getopt::Long::GetOptions( # "help" => \(my $opt_help), # "man" => \(my $opt_man), #) || pod2usage(2); #pod2usage(1) # if ($opt_help); #pod2usage(-verbose => 2) # if ($opt_man); use WRE::Config; use WRE::File; use WRE::Mysql; use Config::JSON; use DBI; my $wre_config = WRE::Config->new; my $config_file = (shift @ARGV) || $ENV{WEBGUI_CONFIG} || die "You must set the WEBGUI_CONFIG environment variable or provide a parameter to determine which site to reset\n"; my $config = Config::JSON->new($config_file); my $dsn = $config->get('dsn'); my $db_user = $config->get('dbuser'); my $db_pass = $config->get('dbpass'); my $dbh = DBI->connect($config->get('dsn'), $db_user, $db_pass); my $sth = $dbh->table_info(undef, undef, '%'); my @tables = map {@$_} @{$sth->fetchall_arrayref([2])}; for my $table (@tables) { $dbh->do("DROP TABLE $table"); } $dbh->disconnect; my $db_name = (split(/[:;]/, $dsn))[2]; my $db_host = 'localhost'; my $db_port = '3306'; while ($dsn =~ /([^=;:]+)=([^;:]+)/g) { if ($1 eq 'host' || $1 eq 'hostname') { $db_host = $2; } elsif ($1 eq 'db' || $1 eq 'database' || $1 eq 'dbname') { $db_name = $2; } elsif ($1 eq 'port') { $db_port = $2; } } WRE::Mysql->new(wreConfig => $wre_config)->load(username => $db_user, password => $db_pass, database => $db_name, path => $wre_config->getWebguiRoot("/docs/create.sql")); my $file = WRE::File->new(wreConfig=>$wre_config); $file->delete($config->get('uploadsPath')); $file->copy( $wre_config->getWebguiRoot('/www/uploads'), $config->get('uploadsPath'), { recursive => 1, force => 1 }, ); chdir $wre_config->getWebguiRoot('/sbin'); unless(fork()) { @ARGV = qw(--doit --override --skipBackup); do 'upgrade.pl'; exit; } wait; $dbh = DBI->connect($config->get('dsn'), $db_user, $db_pass); $dbh->do("replace into settings (name,value) values ('specialState','init')"); $dbh->do("replace into settings (name,value) values ('showDebug','1')"); $dbh->disconnect; __END__ mysql -e "drop database dev_localhost_localdomain;create database dev_localhost_localdomain" mysql dev_localhost_localdomain < /data/WebGUI/docs/previousVersion.sql sudo rm -Rf /tmp/WebGUICache sudo rm -Rf /data/domains/dev.localhost.localdomain/public/uploads/* cd /data/WebGUI/sbin perl upgrade.pl --doit --override --skipBackup mysql -e "replace into settings (name,value) values ('specialState','init')" dev_localhost_localdomain mysql -e "replace into settings (name,value) values ('showDebug','1')" dev_localhost_localdomain sudo cp -Rf /data/WebGUI/www/uploads/* /data/domains/dev.localhost.localdomain/public/uploads/ sudo chown -Rf nobody /data/domains/dev.localhost.localdomain/public/uploads/