X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=scripts%2Fconsole;h=239ed543112dc5f394186fd9be6e137fd6dbbf38;hb=1f3fea6c844add4f42c4e5ee22dcb688867876a2;hp=6a9d000db785d63d8a258d1ffb174771a54ae103;hpb=b7fa831d13e666c28a8381474bf9458adc8ead3f;p=kivitendo-erp.git diff --git a/scripts/console b/scripts/console index 6a9d000db..239ed5431 100755 --- a/scripts/console +++ b/scripts/console @@ -9,18 +9,17 @@ BEGIN { push @INC, "modules/fallback"; # Only use our own versions of modules if there's no system version. } -use Config::Std; use Data::Dumper; use Devel::REPL 1.002001; -eval { -require Term::ReadLine::Perl::Bind; # use sane key binding for rxvt users -}; +use Term::ReadLine::Perl::Bind; # use sane key binding for rxvt users -read_config 'config/console.conf' => my %config;# if -f 'config/console.conf'; +use SL::LxOfficeConf; +SL::LxOfficeConf->read; -my $login = shift || $config{Console}{login} || 'demo'; -my $history_file = $config{Console}{history_file} || '/tmp/lxoffice_console_history.log'; # fallback if users is not writable -my $autorun = $config{Console}{autorun}; +my $login = shift || $::lx_office_conf{console}{login} || 'demo'; +my $history_file = $::lx_office_conf{console}{history_file} || '/tmp/lxoffice_console_history.log'; # fallback if users is not writable +my $debug_file = $::lx_office_conf{console}{log_file} || '/tmp/lxoffice_console_debug.log'; +my $autorun = $::lx_office_conf{console}{autorun}; # will be configed eventually my @plugins = qw(History LexEnv Colors MultiLine::PPI FancyPrompt PermanentHistory AutoloadModules); @@ -31,11 +30,24 @@ $repl->load_history($history_file); $repl->eval('help'); $repl->print("trying to auto login as '$login'..."); $repl->print($repl->eval("lxinit '$login'")); -$repl->print($repl->eval($autorun)) if $autorun; +if ($autorun) { + my $result = $repl->eval($autorun); + $repl->print($result->message) if ref($result) eq 'Devel::REPL::Error'; +} $repl->run; package Devel::REPL; +use utf8; +use CGI qw( -no_xhtml); +use DateTime; +use SL::Auth; +use SL::Form; +use SL::Helper::DateTime; +use SL::InstanceConfiguration; +use SL::Locale; +use SL::LXDebug; +use Data::Dumper; # this is a cleaned up version of am.pl # it lacks redirection, some html setup and most of the authentication process. @@ -48,28 +60,12 @@ sub lxinit { package main; - { no warnings 'once'; - $::userspath = "users"; - $::templates = "templates"; - $::memberfile = "users/members"; - $::sendmail = "| /usr/sbin/sendmail -t"; - } - - use SL::LXDebug; - $::lxdebug = LXDebug->new; - - use CGI qw( -no_xhtml); - use SL::Auth; - use SL::Form; - use SL::Locale; - use Data::Dumper; - - eval { require "config/lx-erp.conf"; }; - eval { require "config/lx-erp-local.conf"; } if -f "config/lx-erp-local.conf"; - - $::cgi = CGI->new qw(); - $::form = Form->new; - $::auth = SL::Auth->new; + $::lxdebug = LXDebug->new(file => $debug_file); + $::locale = Locale->new($::lx_office_conf{system}->{language}); + $::form = Form->new; + $::auth = SL::Auth->new; + $::instance_conf = SL::InstanceConfiguration->new; + $::request = { cgi => CGI->new({}) }; die 'cannot reach auth db' unless $::auth->session_tables_present; @@ -77,9 +73,14 @@ sub lxinit { require "bin/mozilla/common.pl"; - die "cannot find user $login" unless %::myconfig = $::auth->read_user($login); + die "cannot find user $login" unless %::myconfig = $::auth->read_user(login => $login); + + $::form->{login} = $login; # normaly implicit at login + die "cannot find locale for user $login" unless $::locale = Locale->new($::myconfig{countrycode}); + $::instance_conf->init; + return "logged in as $login"; } @@ -105,25 +106,26 @@ sub quit { sub help { print < + Sven Schöling =cut