X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=scripts%2Ftask_server.pl;h=cfdd8668b15b303a6544dfa2a60661694cfdb4a9;hb=c10ad4bbce3fdf09e6e3150f5e36e10ebbb58f90;hp=1bcb719c9b4f36b85c3296dae790a96a0372824a;hpb=c6dd542b51ae9549ad42a54f9023b905412bbab9;p=kivitendo-erp.git diff --git a/scripts/task_server.pl b/scripts/task_server.pl index 1bcb719c9..cfdd8668b 100755 --- a/scripts/task_server.pl +++ b/scripts/task_server.pl @@ -1,24 +1,15 @@ #!/usr/bin/perl - -use List::MoreUtils qw(any); - use strict; my $exe_dir; BEGIN { use FindBin; - use lib "$FindBin::Bin/.."; - - use SL::System::Process; - $exe_dir = SL::System::Process::exe_dir; - - unshift @INC, "${exe_dir}/modules/override"; # Use our own versions of various modules (e.g. YAML). - push @INC, "${exe_dir}/modules/fallback"; # Only use our own versions of modules if there's no system version. - unshift @INC, $exe_dir; - chdir($exe_dir) || die "Cannot change directory to ${exe_dir}\n"; + unshift(@INC, $FindBin::Bin . '/../modules/override'); # Use our own versions of various modules (e.g. YAML). + push (@INC, $FindBin::Bin . '/..'); # '.' will be removed from @INC soon. + push (@INC, $FindBin::Bin . '/../modules/fallback'); # Only use our own versions of modules if there's no system version. } use CGI qw( -no_xhtml); @@ -26,12 +17,13 @@ use Cwd; use Daemon::Generic; use Data::Dumper; use DateTime; -use Encode qw(); use English qw(-no_match_vars); use File::Spec; +use List::MoreUtils qw(any); use List::Util qw(first); use POSIX qw(setuid setgid); use SL::Auth; +use SL::DBUpgrade2; use SL::DB::AuthClient; use SL::DB::BackgroundJob; use SL::BackgroundJob::ALL; @@ -42,6 +34,7 @@ use SL::LXDebug; use SL::LxOfficeConf; use SL::Locale; use SL::Mailer; +use SL::System::Process; use SL::System::TaskServer; use Template; @@ -63,7 +56,6 @@ sub initialize_kivitendo { package main; - Form::disconnect_standard_dbh; $::lxdebug = LXDebug->new; $::locale = Locale->new($::lx_office_conf{system}->{language}); $::form = Form->new; @@ -93,8 +85,7 @@ sub initialize_kivitendo { } sub cleanup_kivitendo { - eval { SL::DB::Auth->new->db->dbh->rollback; }; - eval { SL::DB::BackgroundJob->new->db->dbh->rollback; }; + eval { SL::DB->client->dbh->rollback; }; $::auth->save_session; $::auth->expire_sessions; @@ -107,9 +98,10 @@ sub cleanup_kivitendo { } sub clean_before_sleeping { - Form::disconnect_standard_dbh; SL::DBConnect::Cache->disconnect_all_and_clear; SL::DB->db_cache->clear; + + File::Temp::cleanup(); } sub drop_privileges { @@ -165,6 +157,7 @@ sub notify_on_failure { EVAL_PERL => 0, ABSOLUTE => 1, CACHE_SIZE => 0, + ENCODING => 'utf8', }); return debug("Could not create Template instance") unless $template; @@ -181,7 +174,7 @@ sub notify_on_failure { subject => $cfg->{email_subject}, content_type => 'text/plain', charset => 'utf-8', - message => Encode::decode('utf-8', $body), + message => $body, )->send; 1; @@ -210,6 +203,18 @@ EOT exit 2; } + initialize_kivitendo(); + + my $dbupdater_auth = SL::DBUpgrade2->new(form => $::form, auth => 1)->parse_dbupdate_controls; + if ($dbupdater_auth->unapplied_upgrade_scripts($::auth->dbconnect)) { + print STDERR <show_backtrace(); - die <exe_dir; +chdir($exe_dir) || die "Cannot change directory to ${exe_dir}\n"; mkdir SL::System::TaskServer::PID_BASE() if !-d SL::System::TaskServer::PID_BASE();