X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=scripts%2Fconsole;h=added9f839fd9dfb8b32b765f4d09f4b821f7b4b;hb=abc7d88b97193fe5c1c23071cd56b62e928b1fd9;hp=d7679d0f6547016e235eb3dd1a81952f18965c25;hpb=c7edb24800396748f2bf1e40ff05f90a18d31b02;p=kivitendo-erp.git diff --git a/scripts/console b/scripts/console index d7679d0f6..added9f83 100755 --- a/scripts/console +++ b/scripts/console @@ -14,7 +14,7 @@ use Data::Dumper; use Devel::REPL 1.002001; use Term::ReadLine::Perl::Bind; # use sane key binding for rxvt users -read_config 'config/console.conf' => my %config;# if -f 'config/console.conf'; +read_config 'config/lx_office.conf' => my %config; 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 @@ -29,11 +29,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::Dispatcher; +use SL::Form; +use SL::Helper::DateTime; +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. @@ -49,25 +62,20 @@ sub lxinit { { 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; + $::locale = Locale->new($::language); + $::cgi = CGI->new qw(); + $::form = Form->new; + $::auth = SL::Auth->new; + + read_config 'config/lx_office.conf' => %::lx_office_conf; + SL::Dispatcher::_decode_recursively(\%::lx_office_conf); die 'cannot reach auth db' unless $::auth->session_tables_present; @@ -76,8 +84,12 @@ sub lxinit { require "bin/mozilla/common.pl"; die "cannot find user $login" unless %::myconfig = $::auth->read_user($login); + + $::form->{login} = $login; # normaly implicit at login + die "cannot find locale for user $login" unless $::locale = Locale->new($::myconfig{countrycode}); + return "logged in as $login"; } @@ -90,7 +102,7 @@ sub load { } sub reload { - use Module::Reload; + require Module::Reload; Module::Reload->check(); return "modules reloaded"; @@ -110,18 +122,19 @@ sub help { Spezielle Kommandos: help - zeigt diese Hilfe an. - lxinit 'login' - lädt das Lx-Office Environment für den User 'login'. - reload - lädt modifizierte Module neu. + lxinit 'login' - lädt das Lx-Office Environment für den User 'login'. + reload - lädt modifizierte Module neu. pp DATA - zeigt die Datenstruktur mit Data::Dumper an. quit - beendet die Konsole EOL -# load 'module' - läd das angegebene Modul, d.h. bin/mozilla/module.pl und SL/Module.pm. +# load 'module' - läd das angegebene Modul, d.h. bin/mozilla/module.pl und SL/Module.pm. } sub pp { - $Data::Dumper::Indent = 2; - $Data::Dumper::Maxdepth = 2; + local $Data::Dumper::Indent = 2; + local $Data::Dumper::Maxdepth = 2; + local $Data::Dumper::Sortkeys = 1; Data::Dumper::Dumper(@_); } @@ -184,13 +197,13 @@ of the classes they were created with. Configuration of this script is located in: - config/console.conf - config/console.conf.default + config/lx_office.conf + config/lx_office.conf.default See there for interesting options. =head1 AUTHOR - Sven Schöling + Sven Schöling =cut