Skip to content

Commit

Permalink
msi: keep fluentdopt when previous options is set
Browse files Browse the repository at this point in the history
Before:

* always reset fluentdopt

After:

* If fluentdopt is empty, set default value
* If fluentdopt configuration is changed from default one, keep it.

Signed-off-by: Kentaro Hayashi <hayashi@clear-code.com>
  • Loading branch information
kenhys committed Feb 6, 2024
1 parent c75754e commit 33aff94
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 2 deletions.
1 change: 1 addition & 0 deletions fluent-package/Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -539,6 +539,7 @@ class BuildTask
cp("msi/assets/#{PACKAGE_NAME}-prompt.bat", fluent_package_staging_dir)
cp("msi/assets/#{PACKAGE_NAME}-post-install.bat", staging_bindir)
cp("msi/assets/#{PACKAGE_NAME}-post-migration.bat", staging_bindir)
cp("msi/assets/#{PACKAGE_NAME}-post-fluentdwinsvc.rb", staging_bindir)
cp("msi/assets/#{SERVICE_NAME}.bat", fluent_package_staging_dir)
cp("msi/assets/fluent-gem.bat", fluent_package_staging_dir)
cp("msi/assets/#{PACKAGE_NAME}-version.rb", staging_bindir)
Expand Down
32 changes: 32 additions & 0 deletions fluent-package/msi/assets/fluent-package-post-fluentdwinsvc.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
require 'fileutils'
require "win32/service"
require "win32/registry"
require "optparse"
include Win32

install_dir = "#{ARGV[0]}"

default_fluentdwinsvc = "-c '#{install_dir}etc\\fluent\\fluentd.conf' -o '#{install_dir}fluentd.log'"
registory_key = "SYSTEM\\CurrentControlSet\\Services\\fluentdwinsvc"

begin
Win32::Registry::HKEY_LOCAL_MACHINE.open(registory_key, Win32::Registry::KEY_ALL_ACCESS) do |reg|
# Check whether RegValue exists or not
begin
previous_fluentdopt = reg['fluentdopt', Win32::Registry::REG_SZ]
if previous_fluentdopt != default_fluentdwinsvc
puts("fluentdwinsvc: fluentdopt configuration was kept because option was changed from default")
end
rescue Win32::Registry::Error
# As fluentdopt value does not exist, then set default configuration
puts("fluentdwinsvc: reset to default fluentdopt configuration")
reg['fluentdopt', Win32::Registry::REG_SZ] = default_fluentdwinsvc
end
end
rescue Win32::Registry::Error
# No fluentdwinsvc key yet.
puts("fluentdwinsvc: create #{registory_key} and set default fluentdopt configuration")
Win32::Registry::HKEY_LOCAL_MACHINE.create(registory_key, Win32::Registry::KEY_ALL_ACCESS) do |reg|
reg['fluentdopt', Win32::Registry::REG_SZ] = default_fluentdwinsvc
end
end
18 changes: 16 additions & 2 deletions fluent-package/msi/source.wxs
Original file line number Diff line number Diff line change
Expand Up @@ -185,14 +185,25 @@
<Property Id="InstallFluentdWinSvc" Value=" "/>
<CustomAction Id="SetInstallFluentdWinSvcCommand"
Property="InstallFluentdWinSvc"
Value="&quot;[FLUENTPROJECTLOCATION]fluentd.bat&quot; --reg-winsvc i --reg-winsvc-delay-start --reg-winsvc-fluentdopt &quot;-c '[FLUENTPROJECTLOCATION]etc\fluent\fluentd.conf' -o '[FLUENTPROJECTLOCATION]fluentd.log'&quot;"/>
Value="&quot;[FLUENTPROJECTLOCATION]fluentd.bat&quot; --reg-winsvc i --reg-winsvc-delay-start"/>
<CustomAction Id="InstallFluentdWinSvc"
BinaryKey="WixCA"
DllEntry="WixQuietExec64"
Execute="deferred"
Return="check"
Impersonate="no" />

<Property Id="InstallFluentdWinSvcFluentdopt" Value=" "/>
<CustomAction Id="SetInstallFluentdWinSvcFluentdoptCommand"
Property="InstallFluentdWinSvcFluentdopt"
Value="&quot;[FLUENTPROJECTLOCATION]bin\ruby.exe&quot; &quot;[FLUENTPROJECTLOCATION]bin\fluent-package-post-fluentdwinsvc.rb&quot; &quot;[FLUENTPROJECTLOCATION]&quot;"/>
<CustomAction Id="InstallFluentdWinSvcFluentdopt"
BinaryKey="WixCA"
DllEntry="WixQuietExec64"
Execute="deferred"
Return="check"
Impersonate="no" />

<Property Id="CreateCompatTdAgentBat" Value=" "/>
<CustomAction Id="SetCreateCompatTdAgentBat"
Property="CreateCompatTdAgentBat"
Expand Down Expand Up @@ -242,9 +253,12 @@
<Custom Action="SetPostMigrationCommand" Before="PostMigration">WIX_UPGRADE_DETECTED</Custom>
<Custom Action="PostMigration" Before="StartServices">WIX_UPGRADE_DETECTED</Custom>

<Custom Action="SetInstallFluentdWinSvcCommand" After="InstallFiles">NOT Installed</Custom>
<Custom Action="SetInstallFluentdWinSvcCommand" After="PostInstall">NOT Installed</Custom>
<Custom Action="InstallFluentdWinSvc" After="SetInstallFluentdWinSvcCommand">NOT Installed</Custom>

<Custom Action="SetInstallFluentdWinSvcFluentdoptCommand" After="InstallFluentdWinSvc">NOT Installed OR WIX_UPGRADE_DETECTED</Custom>
<Custom Action="InstallFluentdWinSvcFluentdopt" After="SetInstallFluentdWinSvcFluentdoptCommand">NOT Installed OR WIX_UPGRADE_DETECTED</Custom>

<Custom Action="SetCreateCompatTdAgentBat" Before="InstallFinalize">NOT Installed</Custom>
<Custom Action="CreateCompatTdAgentBat" After="SetCreateCompatTdAgentBat">NOT Installed</Custom>
<Custom Action="SetCreateCompatTdAgentGemBat" Before="InstallFinalize">NOT Installed</Custom>
Expand Down

0 comments on commit 33aff94

Please sign in to comment.