From: Sven Schöling Date: Wed, 20 Jan 2021 10:21:22 +0000 (+0100) Subject: Layout::Base: git_commit_reload_resources config parameter X-Git-Tag: kivitendo-mebil_0.1-0~9^2~116 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=5b8c6acbd61239eb07476bcf9e767ee2cfec2921;p=kivitendo-erp.git Layout::Base: git_commit_reload_resources config parameter Ermöglicht das Ausschalten von git commit Resourcesversionierung das bisher immer an war. --- diff --git a/SL/Layout/Base.pm b/SL/Layout/Base.pm index 813db7315..aa7881250 100644 --- a/SL/Layout/Base.pm +++ b/SL/Layout/Base.pm @@ -44,21 +44,27 @@ sub get { } sub init_auto_reload_resources_param { - return sprintf('?rand=%d-%d-%d', Time::HiRes::gettimeofday(), int(rand 1000000000000)) if $::lx_office_conf{debug}->{auto_reload_resources}; + if ($::lx_office_conf{debug}->{auto_reload_resources}) { + return sprintf('?rand=%d-%d-%d', Time::HiRes::gettimeofday(), int(rand 1000000000000)); + } + + if ($::lx_office_conf{debug}{git_commit_reload_resources}) { + my $git_dir = SL::System::Process::exe_dir() . '/.git'; - my $git_dir = SL::System::Process::exe_dir() . '/.git'; + return '' unless -d $git_dir; - return '' unless -d $git_dir; + my $content = eval { scalar(read_file($git_dir . '/HEAD')) }; - my $content = eval { scalar(read_file($git_dir . '/HEAD')) }; + return '' unless ($content // '') =~ m{\Aref: ([^\r\n]+)}; - return '' unless ($content // '') =~ m{\Aref: ([^\r\n]+)}; + $content = eval { scalar(read_file($git_dir . '/' . $1)) }; - $content = eval { scalar(read_file($git_dir . '/' . $1)) }; + return '' unless ($content // '') =~ m{\A([0-9a-fA-F]+)}; - return '' unless ($content // '') =~ m{\A([0-9a-fA-F]+)}; + return '?rand=' . $1; + } - return '?rand=' . $1; + return ''; } ########################################## diff --git a/config/kivitendo.conf.default b/config/kivitendo.conf.default index de9366ed4..07ae59d56 100644 --- a/config/kivitendo.conf.default +++ b/config/kivitendo.conf.default @@ -374,6 +374,11 @@ keep_installation_unlocked = 0 # the web browser to always reload the resources. auto_reload_resources = 0 +# Alternative to auto_reload_resources. If the installation dir is under git +# version control, this will use the HEAD commit sha1 as the random GET +# parameter, so that resources are reloaded if the installed version charnges. +git_commit_reload_recources = 0 + # If set to 1 each exception will include a full stack backtrace. backtrace_on_die = 0