epic-s6ts
[kivitendo-erp.git] / SL / LxOfficeConf.pm
index 3cd462c..f6ae49e 100644 (file)
@@ -2,27 +2,27 @@ package SL::LxOfficeConf;
 
 use strict;
 
+use Encode;
+
 my $environment_initialized;
 
 sub safe_require {
-  my ($class, $may_fail);
-  my $failed;
-  $failed = !eval {
-    require Config::Std;
-    require Encode;
-  };
+  my ($class, $may_fail) = @_;
 
-  if ($failed) {
+  eval {
+    require Config::Std;
+    require SL::System::Process;
+    1;
+  } or do {
     if ($may_fail) {
       warn $@;
       return 0;
     } else {
       die $@;
     }
-  }
+  };
 
   Config::Std->import;
-  Encode->import;
 
   return 1;
 }
@@ -32,10 +32,14 @@ sub read {
 
   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);