my $environment_initialized;
sub safe_require {
- my ($class, $may_fail);
+ my ($class, $may_fail) = @_;
- my $failed = !eval { require Config::Std; };
-
- if ($failed) {
+ eval {
+ require Config::Std;
+ require SL::System::Process;
+ 1;
+ } or do {
if ($may_fail) {
warn $@;
return 0;
} else {
die $@;
}
- }
+ };
Config::Std->import;
return unless $class->safe_require($may_fail);
- read_config('config/lx_office.conf.default' => \%::lx_office_conf);
+ # Backwards compatibility: read lx_office.conf.default if
+ # kivitendo.conf.default does't exist.
+ my $dir = SL::System::Process->exe_dir;
+ my $default_config = -f "${dir}/config/kivitendo.conf.default" ? 'kivitendo' : 'lx_office';
+ read_config("${dir}/config/${default_config}.conf.default" => \%::lx_office_conf);
_decode_recursively(\%::lx_office_conf);
- $file_name ||= 'config/lx_office.conf';
+ $file_name ||= -f "${dir}/config/kivitendo.conf" ? "${dir}/config/kivitendo.conf" : "${dir}/config/lx_office.conf";
if (-f $file_name) {
read_config($file_name => \ my %local_conf);