fluent-plugin-fluent-package-update-notifier 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bf90e9f7087062ad11435cdfdf83799e06ec3f27b0866e794d98ec0bd4d904c8
4
- data.tar.gz: 6cc31d61d115e3c277eff7670da0f8056bac9949e33f8d27753c90b176a42174
3
+ metadata.gz: bd3c1398410021f014a536743f1a4f4a48cfe276c3c89424a4965f325649f9cf
4
+ data.tar.gz: b0d904d198c9d5372f95ac713fd4e5eb158107c9bda6c65107831e31fb34f4f9
5
5
  SHA512:
6
- metadata.gz: 5f82f1c34bfa6b2bb8e7bca0dbc223958e4f32771ea28a97c4d625e41a55e19c27cada4234f2af0b119ead4628a2d3282611c67a1ed63396df6ee3a1a3d1c0c3
7
- data.tar.gz: a1fbcd13577f46364d342da34b74820a08981f5bef0d63f05a05a915b96b5ddae9192d886081a8ea43eaf75be1afe42c57657bb78ac6e3327fb8cd5e8a50c2ba
6
+ metadata.gz: 79044640ac62b77e2a953f7abc59fd047ef575222d66778224b0e0512720e51dcbbd20031c433515f3cfbd6f3c8e355f1f3714d2ee6ec34f212395a2702179cb
7
+ data.tar.gz: 7d399dabb8b15aecff7ae4543759ce4e2005bb44aa950fe68d1adaafda51922a89fbf9c39edb95eb185e6642e3660ddc7ac39fae748853c5b56676b5cc28a1df
data/.rubocop.yml ADDED
@@ -0,0 +1,35 @@
1
+ plugins:
2
+ - rubocop-performance
3
+ - rubocop-fluentd
4
+
5
+ AllCops:
6
+ Exclude:
7
+ - 'vendor/**/*'
8
+ - 'test/**/*'
9
+ NewCops: enable
10
+ SuggestExtensions: false
11
+ TargetRubyVersion: 2.7
12
+
13
+ Layout:
14
+ Enabled: false
15
+ Style:
16
+ Enabled: false
17
+ Lint:
18
+ Enabled: false
19
+ Naming:
20
+ Enabled: false
21
+ Metrics:
22
+ Enabled: false
23
+ Gemspec:
24
+ Enabled: false
25
+ Security:
26
+ Enabled: false
27
+ Performance:
28
+ Enabled: false
29
+
30
+ Lint/FluentdPluginLogScope:
31
+ Enabled: true
32
+ Lint/FluentdPluginConfigParamDefaultTime:
33
+ Enabled: true
34
+ Performance/FluentdPluginLogStringInterpolation:
35
+ Enabled: true
data/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ # 0.2.0 - 2025-07-14
2
+
3
+ * Make robust for future distribution release
4
+
5
+ # 0.1.0 - 2025-04-22
6
+
7
+ * Initial release
@@ -2,6 +2,7 @@ require 'open-uri'
2
2
  require 'json'
3
3
  require 'tmpdir'
4
4
  require 'rbconfig'
5
+ require 'specinfra'
5
6
 
6
7
  module Fluent
7
8
  module Plugin
@@ -23,6 +24,8 @@ module Fluent
23
24
  @logger.error "Failed to load #{ENV["FLUENT_PACKAGE_CONFIG"] || DEFAULT_PACKAGE_CONFIG_PATH}"
24
25
  end
25
26
  @host_os = RbConfig::CONFIG['host_os']
27
+ Specinfra.configuration.backend = :exec
28
+ @os_info = Specinfra.backend.os_info
26
29
  end
27
30
 
28
31
  def windows?
@@ -76,14 +79,13 @@ module Fluent
76
79
  [base_version.segments[1], target_version.segments[1]] == [0, 0]
77
80
  end
78
81
 
79
- def parse_os_release(key)
80
- File.open("/etc/os-release").readlines.each do |line|
81
- if line.start_with?(key)
82
- line.chomp =~ /^#{key}=(.+)$/
83
- return $1
84
- end
82
+ def package_arch
83
+ case @os_info[:family]
84
+ when "debian", "ubuntu"
85
+ @os_info[:arch] == "x86_64" ? "amd64" : "arm64"
86
+ when "redhat", "amazon"
87
+ @os_info[:arch] == "x86_64" ? "x64_64" : "aarch64"
85
88
  end
86
- nil
87
89
  end
88
90
 
89
91
  def package_url(prefix, distribution, version)
@@ -91,47 +93,37 @@ module Fluent
91
93
  channel = @options[:lts] ? "lts/#{major}" : major
92
94
  case distribution
93
95
  when "debian", "ubuntu"
94
- release = parse_os_release("VERSION_CODENAME")
95
- "#{prefix}/#{channel}/#{distribution}/#{release}/pool/contrib/f/fluent-package/fluent-package_#{version}-1_amd64.deb"
96
- when "redhat/8"
97
- "#{prefix}/#{channel}/#{distribution}/x86_64/fluent-package_#{version}-1.el8.x86_64.rpm"
98
- when "redhat/9"
99
- "#{prefix}/#{channel}/#{distribution}/x86_64/fluent-package_#{version}-1.el9.x86_64.rpm"
96
+ codename = @os_info[:codename]
97
+ File.join([prefix, channel, distribution, codename, "pool/contrib/f/fluent-package",
98
+ "fluent-package_#{version}-1_#{package_arch}.deb"])
99
+ when "redhat"
100
+ major = Gem::Version.new(@os_info[:release]).segments.first
101
+ File.join([prefix, channel, distribution, major, package_arch,
102
+ "fluent-package_#{version}-1.el#{major}.#{package_arch}.rpm"])
100
103
  when "amazon/2023"
101
- "#{prefix}/#{channel}/#{distribution}/x86_64/fluent-package_#{version}-1.amzn2023.x86_64.rpm"
104
+ File.join([prefix, channel, distribution, package_arch,
105
+ "fluent-package_#{version}-1.amzn2023.#{package_arch}.rpm"])
102
106
  when "amazon/2"
103
- "#{prefix}/#{channel}/#{distribution}/x86_64/fluent-package_#{version}-1.amzn2.x86_64.rpm"
107
+ arch = @os_info[:arch] == "x86_64" ? "x64_64" : "aarch64"
108
+ File.join([prefix, channel, distribution, package_arch,
109
+ "fluent-package_#{version}-1.amzn2.#{package_arch}.rpm"])
104
110
  when "windows"
105
- "#{prefix}/#{channel}/#{distribution}/fluent-package-#{version}-x64.msi"
111
+ File.join([prefix, channel, distribution,
112
+ "fluent-package-#{version}-x64.msi"])
106
113
  end
107
114
  end
108
115
 
109
116
  def generate_remote_package_url(url_prefix, target_version)
110
117
  if linux?
111
- os_release_id = parse_os_release("ID")
112
- case os_release_id
113
- when "debian"
114
- url = package_url(url_prefix, "debian", target_version)
115
- @logger.debug("Check existence of #{url}")
116
- url
117
- when "ubuntu"
118
- package_url(url_prefix, "ubuntu", target_version)
119
- when "rocky", "almalinux", "amzn"
120
- cpe = parse_os_release("CPE_NAME")
121
- case cpe
122
- when /rocky:8/, /almalinux:8/
123
- package_url(url_prefix, "redhat/8", target_version)
124
- when /rocky:9/, /almalinux:9/
125
- package_url(url_prefix, "redhat/9", target_version)
126
- when /amazon_linux:2023/, /amazon_linux:2/
127
- version = parse_os_release("VERSION")
128
- case version
129
- when "2023"
130
- package_url(url_prefix, "amazon/2023", target_version)
131
- when "2"
132
- package_url(url_prefix, "amazon/2", target_version)
133
- end
134
- end
118
+ case @os_info[:family]
119
+ when "debian", "ubuntu"
120
+ family_codename = "#{@os_info[:family]}/#{@os_info[:codename]}"
121
+ package_url(url_prefix, family_codename, target_version)
122
+ when "redhat"
123
+ package_url(url_prefix, "redhat", target_version)
124
+ when "amazon"
125
+ major = Gem::Version.new(@os_info[:release]).segments.first
126
+ package_url(url_prefix, "amazon/#{major}", target_version)
135
127
  end
136
128
  elsif windows?
137
129
  package_url(url_prefix, "windows", target_version)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-fluent-package-update-notifier
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kentaro Hayashi
@@ -9,6 +9,20 @@ bindir: bin
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: specinfra
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: 2.94.1
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: 2.94.1
12
26
  - !ruby/object:Gem::Dependency
13
27
  name: bundler
14
28
  requirement: !ruby/object:Gem::Requirement
@@ -85,6 +99,20 @@ dependencies:
85
99
  - - "<"
86
100
  - !ruby/object:Gem::Version
87
101
  version: '2'
102
+ - !ruby/object:Gem::Dependency
103
+ name: rubocop-fluentd
104
+ requirement: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: 0.2.0
109
+ type: :development
110
+ prerelease: false
111
+ version_requirements: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: 0.2.0
88
116
  description: Notify latest version of fluent-package on startup
89
117
  email:
90
118
  - hayashi@clear-code.com
@@ -92,6 +120,8 @@ executables: []
92
120
  extensions: []
93
121
  extra_rdoc_files: []
94
122
  files:
123
+ - ".rubocop.yml"
124
+ - CHANGELOG.md
95
125
  - LICENSE
96
126
  - README.md
97
127
  - Rakefile