facter 4.3.1 → 4.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/lib/docs/generate_cli.rb +1 -1
  3. data/lib/facter/custom_facts/core/execution/base.rb +5 -4
  4. data/lib/facter/custom_facts/core/execution/posix.rb +1 -1
  5. data/lib/facter/custom_facts/core/execution/windows.rb +2 -2
  6. data/lib/facter/custom_facts/core/execution.rb +1 -1
  7. data/lib/facter/custom_facts/core/file_loader.rb +23 -24
  8. data/lib/facter/custom_facts/core/legacy_facter.rb +1 -1
  9. data/lib/facter/custom_facts/util/normalization.rb +8 -23
  10. data/lib/facter/custom_facts/util/windows_root.rb +1 -1
  11. data/lib/facter/facts/debian/architecture.rb +1 -1
  12. data/lib/facter/facts/linux/hypervisors/kvm.rb +2 -2
  13. data/lib/facter/facts/linux/os/architecture.rb +1 -1
  14. data/lib/facter/facts/linux/partitions.rb +4 -0
  15. data/lib/facter/facts/linux/processors/isa.rb +1 -10
  16. data/lib/facter/facts/ol/lsbdistdescription.rb +16 -0
  17. data/lib/facter/facts/ol/lsbdistid.rb +16 -0
  18. data/lib/facter/facts/ol/os/distro/description.rb +19 -0
  19. data/lib/facter/facts/ol/os/distro/id.rb +19 -0
  20. data/lib/facter/facts/windows/hypervisors/kvm.rb +2 -2
  21. data/lib/facter/framework/cli/cli_launcher.rb +3 -3
  22. data/lib/facter/framework/config/config_reader.rb +4 -0
  23. data/lib/facter/framework/config/fact_groups.rb +2 -2
  24. data/lib/facter/framework/core/fact_loaders/fact_loader.rb +14 -2
  25. data/lib/facter/framework/core/file_loader.rb +896 -38
  26. data/lib/facter/framework/core/options/config_file_options.rb +4 -0
  27. data/lib/facter/framework/core/options/options_validator.rb +9 -2
  28. data/lib/facter/framework/detector/os_hierarchy.rb +1 -1
  29. data/lib/facter/framework/formatters/legacy_fact_formatter.rb +1 -1
  30. data/lib/facter/framework/formatters/yaml_fact_formatter.rb +2 -2
  31. data/lib/facter/framework/parsers/query_parser.rb +2 -1
  32. data/lib/facter/patches/sysfilesystem/sys/statvfs.rb +4 -4
  33. data/lib/facter/resolvers/aix/architecture.rb +1 -1
  34. data/lib/facter/resolvers/aix/filesystem.rb +1 -1
  35. data/lib/facter/resolvers/aix/hardware.rb +1 -1
  36. data/lib/facter/resolvers/aix/memory.rb +1 -1
  37. data/lib/facter/resolvers/aix/mountpoints.rb +2 -2
  38. data/lib/facter/resolvers/aix/networking.rb +5 -3
  39. data/lib/facter/resolvers/aix/partitions.rb +2 -2
  40. data/lib/facter/resolvers/bsd/processors.rb +1 -1
  41. data/lib/facter/resolvers/freebsd/processors.rb +2 -2
  42. data/lib/facter/resolvers/freebsd/swap_memory.rb +1 -1
  43. data/lib/facter/resolvers/gce.rb +9 -0
  44. data/lib/facter/resolvers/linux/hostname.rb +2 -2
  45. data/lib/facter/resolvers/load_averages.rb +1 -1
  46. data/lib/facter/resolvers/lspci.rb +1 -1
  47. data/lib/facter/resolvers/macosx/swap_memory.rb +1 -1
  48. data/lib/facter/resolvers/networking.rb +1 -1
  49. data/lib/facter/resolvers/open_vz.rb +1 -1
  50. data/lib/facter/resolvers/os_release.rb +3 -3
  51. data/lib/facter/resolvers/selinux.rb +3 -3
  52. data/lib/facter/resolvers/solaris/ffi/functions.rb +5 -3
  53. data/lib/facter/resolvers/solaris/filesystems.rb +1 -1
  54. data/lib/facter/resolvers/solaris/mountpoints.rb +1 -1
  55. data/lib/facter/resolvers/virt_what.rb +6 -6
  56. data/lib/facter/resolvers/windows/ffi/hardware_ffi.rb +2 -2
  57. data/lib/facter/resolvers/windows/ffi/identity_ffi.rb +1 -1
  58. data/lib/facter/resolvers/windows/ffi/kernel_ffi.rb +2 -2
  59. data/lib/facter/resolvers/windows/ffi/memory_ffi.rb +2 -2
  60. data/lib/facter/resolvers/windows/ffi/networking_ffi.rb +3 -3
  61. data/lib/facter/resolvers/windows/ffi/system32_ffi.rb +1 -1
  62. data/lib/facter/resolvers/windows/ffi/winnls_ffi.rb +1 -1
  63. data/lib/facter/resolvers/windows/hardware_architecture.rb +1 -1
  64. data/lib/facter/resolvers/windows/identity.rb +1 -1
  65. data/lib/facter/resolvers/windows/kernel.rb +1 -1
  66. data/lib/facter/resolvers/windows/memory.rb +1 -1
  67. data/lib/facter/resolvers/windows/networking.rb +1 -1
  68. data/lib/facter/resolvers/windows/system32.rb +1 -1
  69. data/lib/facter/resolvers/windows/timezone.rb +1 -1
  70. data/lib/facter/resolvers/windows/virtualization.rb +2 -2
  71. data/lib/facter/resolvers/xen.rb +1 -1
  72. data/lib/facter/util/api_debugger.rb +1 -1
  73. data/lib/facter/util/facts/windows_release_finder.rb +2 -2
  74. data/lib/facter/util/linux/dhcp.rb +1 -1
  75. data/lib/facter/util/resolvers/ffi/hostname.rb +1 -1
  76. data/lib/facter/util/utils.rb +1 -1
  77. data/lib/facter/version.rb +1 -1
  78. data/lib/facter.rb +15 -6
  79. metadata +11 -8
  80. data/lib/facter/facts/windows/augeas/version.rb +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d3dd94ae85f9b9327eac3cbcc63794f202f4eea27d7b8c2c80b8a5b354aca94a
4
- data.tar.gz: a179d9b63edb75738a22d5ed2061c0b2b4313da80dad43af2ad9eb4b1e3bee27
3
+ metadata.gz: 74662429c9115d4eb8feca42d49031fa3be3ff42c200a8c6ee58c664f8afa9da
4
+ data.tar.gz: e1c21ea94af446c6700c27db8c24f150671f7ee8410b8e070436e709ff85fc87
5
5
  SHA512:
6
- metadata.gz: 33fd39d071e0033316518b51310290694d869c7b8f3b7d006c66f20629999cbcc549df6ed58b28d46c092664ba3a89c7f5813117bf5bff50c555202e79c99476
7
- data.tar.gz: c824262cd5cdcb601b203bc4675c832348dce77ca9867f008a23cb8f8677812ab858cc3f11012b80deec949515d6419876b5480d25587e2a7df52c9df1c15540
6
+ metadata.gz: 9a1a2529c0fe5df5da517bbcc8b76b2a53c5c138af5d83ebf8dc25b051d28861816ed4b8ab6c1e167ec4c6bcef50df7d68a34abd22f04442f44eaebd499f3bef
7
+ data.tar.gz: 6c31e966940c2d1a525c5fb1f416b5af15e2b8c57516c92eab6e74be361d198bd6494e26b85316758e7e42ff1eecc6fc3480c3f718b8de2e7d452bcde39911f0
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'facter/framework/cli/cli_launcher'
3
+ require_relative '../facter/framework/cli/cli_launcher'
4
4
 
5
5
  cli = Facter::Cli.new([])
6
6
 
@@ -8,7 +8,7 @@ module Facter
8
8
  class Base
9
9
  STDERR_MESSAGE = 'Command %s completed with the following stderr message: %s'
10
10
  VALID_OPTIONS = %i[on_fail expand logger timeout].freeze
11
-
11
+ DEFAULT_EXECUTION_TIMEOUT = 300
12
12
  def initialize
13
13
  @log = Log.new(self)
14
14
  end
@@ -65,7 +65,7 @@ module Facter
65
65
  end
66
66
 
67
67
  def execute_command(command, on_fail = nil, logger = nil, timeout = nil)
68
- timeout ||= 300
68
+ timeout ||= DEFAULT_EXECUTION_TIMEOUT
69
69
  begin
70
70
  # Set LC_ALL and LANG to force i18n to C for the duration of this exec;
71
71
  # this ensures that any code that parses the
@@ -98,7 +98,7 @@ module Facter
98
98
  message = "Failed while executing '#{command}': #{e.message}"
99
99
  if logger
100
100
  @log.debug(message)
101
- return ''
101
+ return +''
102
102
  end
103
103
 
104
104
  return on_fail unless on_fail == :raise
@@ -106,6 +106,7 @@ module Facter
106
106
  raise Facter::Core::Execution::ExecutionFailure.new, message
107
107
  end
108
108
 
109
+ out.force_encoding(Encoding.default_external) unless out.valid_encoding?
109
110
  [out.strip, stderr]
110
111
  end
111
112
 
@@ -140,7 +141,7 @@ module Facter
140
141
 
141
142
  def builtin_command?(command)
142
143
  output, _status = Open3.capture2("type #{command}")
143
- output.chomp =~ /builtin/ ? true : false
144
+ /builtin/.match?(output.chomp) ? true : false
144
145
  end
145
146
  end
146
147
  end
@@ -44,7 +44,7 @@ module Facter
44
44
 
45
45
  return unless exe && (expanded = which(exe))
46
46
 
47
- expanded = "'#{expanded}'" if expanded =~ /\s/
47
+ expanded = "'#{expanded}'" if /\s/.match?(expanded)
48
48
  expanded << " #{args}" if args
49
49
 
50
50
  expanded
@@ -11,7 +11,7 @@ module Facter
11
11
  def which(bin)
12
12
  # `echo` is allowed for facter 3.x compatibility, otherwise
13
13
  # all commands much be found on the PATH or absolute.
14
- return bin if /^echo$/i =~ bin
14
+ return bin if /^echo$/i.match?(bin)
15
15
 
16
16
  if absolute_path?(bin)
17
17
  return bin if File.executable?(bin)
@@ -56,7 +56,7 @@ module Facter
56
56
 
57
57
  return unless exe && (expanded = which(exe))
58
58
 
59
- expanded = "\"#{expanded}\"" if expanded =~ /\s+/
59
+ expanded = "\"#{expanded}\"" if /\s+/.match?(expanded)
60
60
  expanded << " #{args}" if args
61
61
 
62
62
  expanded
@@ -131,7 +131,7 @@ module Facter
131
131
  #
132
132
  # @param on_fail[Object] How to behave when the command could
133
133
  # not be run. Specifying :raise will raise an error, anything else will
134
- # return that object on failure. Default is :raise.
134
+ # return that object on failure. Default is to not raise.
135
135
  # @param logger Optional logger used to log the command's stderr.
136
136
  # @param timeout Optional time out for the specified command. If no timeout is passed,
137
137
  # a default of 300 seconds is used.
@@ -1,28 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'facter/custom_facts/core/legacy_facter'
4
- require 'facter/custom_facts/util/fact'
5
- require 'facter/custom_facts/util/collection'
6
- require 'facter/custom_facts/util/fact'
7
- require 'facter/custom_facts/util/loader'
8
- require 'facter/custom_facts/core/execution/base'
9
- require 'facter/custom_facts/core/execution/windows'
10
- require 'facter/custom_facts/core/execution/posix'
11
- require 'facter/custom_facts/util/values'
12
- require 'facter/custom_facts/util/confine'
3
+ require_relative '../../../facter/custom_facts/util/fact'
4
+ require_relative '../../../facter/custom_facts/util/collection'
5
+ require_relative '../../../facter/custom_facts/util/fact'
6
+ require_relative '../../../facter/custom_facts/util/loader'
7
+ require_relative '../../../facter/custom_facts/core/execution/base'
8
+ require_relative '../../../facter/custom_facts/core/execution/windows'
9
+ require_relative '../../../facter/custom_facts/core/execution/posix'
10
+ require_relative '../../../facter/custom_facts/util/values'
11
+ require_relative '../../../facter/custom_facts/util/confine'
13
12
 
14
- require 'facter/custom_facts/util/config'
13
+ require_relative '../../../facter/custom_facts/util/config'
15
14
 
16
- require 'facter/custom_facts/util/normalization'
17
- require 'facter/custom_facts/core/execution'
18
- require 'facter/custom_facts/core/resolvable'
19
- require 'facter/custom_facts/core/suitable'
20
- require 'facter/custom_facts/util/resolution'
21
- require 'facter/custom_facts/core/directed_graph'
22
- require 'facter/custom_facts/core/resolvable'
23
- require 'facter/custom_facts/core/aggregate'
24
- require 'facter/custom_facts/util/composite_loader'
25
- require 'facter/custom_facts/util/parser'
26
- require 'facter/custom_facts/util/directory_loader'
27
- require 'facter/custom_facts/util/nothing_loader'
28
- require 'facter/custom_facts/util/nothing_loader'
15
+ require_relative '../../../facter/custom_facts/util/normalization'
16
+ require_relative '../../../facter/custom_facts/core/execution'
17
+ require_relative '../../../facter/custom_facts/core/resolvable'
18
+ require_relative '../../../facter/custom_facts/core/suitable'
19
+ require_relative '../../../facter/custom_facts/util/resolution'
20
+ require_relative '../../../facter/custom_facts/core/directed_graph'
21
+ require_relative '../../../facter/custom_facts/core/resolvable'
22
+ require_relative '../../../facter/custom_facts/core/aggregate'
23
+ require_relative '../../../facter/custom_facts/util/composite_loader'
24
+ require_relative '../../../facter/custom_facts/util/parser'
25
+ require_relative '../../../facter/custom_facts/util/directory_loader'
26
+ require_relative '../../../facter/custom_facts/util/nothing_loader'
27
+ require_relative '../../../facter/custom_facts/util/nothing_loader'
@@ -18,7 +18,7 @@
18
18
 
19
19
  require 'pathname'
20
20
 
21
- require 'facter/custom_facts/core/file_loader'
21
+ require_relative '../../../facter/custom_facts/core/file_loader'
22
22
 
23
23
  # Functions as a hash of 'facts' about your system system, such as MAC
24
24
  # address, IP address, architecture, etc.
@@ -38,11 +38,7 @@ module LegacyFacter
38
38
  #
39
39
  # Attempt to normalize and validate the given string.
40
40
  #
41
- # On Ruby 1.8 the string is checked by stripping out all non UTF-8
42
- # characters and comparing the converted string to the original. If they
43
- # do not match then the string is considered invalid.
44
- #
45
- # On Ruby 1.9+, the string is validate by checking that the string encoding
41
+ # The string is validated by checking that the string encoding
46
42
  # is UTF-8 and that the string content matches the encoding. If the string
47
43
  # is not an expected encoding then it is converted to UTF-8.
48
44
  #
@@ -51,27 +47,16 @@ module LegacyFacter
51
47
  # @param value [String]
52
48
  # @return [void]
53
49
 
54
- if RUBY_VERSION =~ /^1\.8/
55
- require 'iconv'
56
-
57
- def normalize_string(value)
58
- converted = Iconv.conv('UTF-8//IGNORE', 'UTF-8', value)
59
- raise NormalizationError, "String #{value.inspect} is not valid UTF-8" if converted != value
50
+ def normalize_string(value)
51
+ value = value.encode(Encoding::UTF_8)
60
52
 
61
- value
53
+ unless value.valid_encoding?
54
+ raise NormalizationError, "String #{value.inspect} doesn't match the reported encoding #{value.encoding}"
62
55
  end
63
- else
64
- def normalize_string(value)
65
- value = value.encode(Encoding::UTF_8)
66
56
 
67
- unless value.valid_encoding?
68
- raise NormalizationError, "String #{value.inspect} doesn't match the reported encoding #{value.encoding}"
69
- end
70
-
71
- value
72
- rescue EncodingError
73
- raise NormalizationError, "String encoding #{value.encoding} is not UTF-8 and could not be converted to UTF-8"
74
- end
57
+ value
58
+ rescue EncodingError
59
+ raise NormalizationError, "String encoding #{value.encoding} is not UTF-8 and could not be converted to UTF-8"
75
60
  end
76
61
 
77
62
  # Validate all elements of the array.
@@ -4,7 +4,7 @@ module LegacyFacter
4
4
  module Util
5
5
  module Root
6
6
  def self.root?
7
- require 'facter/resolvers/windows/ffi/identity_ffi'
7
+ require_relative '../../../facter/resolvers/windows/ffi/identity_ffi'
8
8
  IdentityFFI.privileged?
9
9
  end
10
10
  end
@@ -10,7 +10,7 @@ module Facts
10
10
  def call_the_resolver
11
11
  fact_value = Facter::Resolvers::Uname.resolve(:machine)
12
12
  fact_value = 'amd64' if fact_value == 'x86_64'
13
- fact_value = 'i386' if fact_value =~ /i[3456]86|pentium/
13
+ fact_value = 'i386' if /i[3456]86|pentium/.match?(fact_value)
14
14
 
15
15
  [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
16
16
  end
@@ -52,9 +52,9 @@ module Facts
52
52
 
53
53
  return { google: true } if manufacturer == 'Google'
54
54
 
55
- return { openstack: true } if manufacturer =~ /^OpenStack/
55
+ return { openstack: true } if /^OpenStack/.match?(manufacturer)
56
56
 
57
- return { amazon: true } if manufacturer =~ /^Amazon/
57
+ return { amazon: true } if /^Amazon/.match?(manufacturer)
58
58
 
59
59
  {}
60
60
  end
@@ -10,7 +10,7 @@ module Facts
10
10
  def call_the_resolver
11
11
  fact_value = Facter::Resolvers::Uname.resolve(:machine)
12
12
 
13
- fact_value = 'i386' if fact_value =~ /i[3456]86|pentium/
13
+ fact_value = 'i386' if /i[3456]86|pentium/.match?(fact_value)
14
14
 
15
15
  [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
16
16
  end
@@ -11,6 +11,10 @@ module Facts
11
11
 
12
12
  def partitions
13
13
  parts = Facter::Resolvers::Partitions.resolve(:partitions)
14
+ # We should exit early if we are running on a node with no partitions
15
+ # (e.g. a diskless, netbooted VM)
16
+ return nil unless parts
17
+
14
18
  mountpoints = Facter::Resolvers::Mountpoints.resolve(:mountpoints)
15
19
  return parts unless mountpoints
16
20
 
@@ -9,16 +9,7 @@ module Facts
9
9
 
10
10
  def call_the_resolver
11
11
  fact_value = Facter::Resolvers::Uname.resolve(:processor)
12
- isa = get_isa(fact_value)
13
-
14
- [Facter::ResolvedFact.new(FACT_NAME, isa), Facter::ResolvedFact.new(ALIASES, isa, :legacy)]
15
- end
16
-
17
- private
18
-
19
- def get_isa(fact_value)
20
- value_split = fact_value.split('.')
21
- value_split.last
12
+ [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
22
13
  end
23
14
  end
24
15
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Ol
5
+ class Lsbdistdescription
6
+ FACT_NAME = 'lsbdistdescription'
7
+ TYPE = :legacy
8
+
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::LsbRelease.resolve(:description)
11
+
12
+ Facter::ResolvedFact.new(FACT_NAME, fact_value, :legacy)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Ol
5
+ class Lsbdistid
6
+ FACT_NAME = 'lsbdistid'
7
+ TYPE = :legacy
8
+
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::LsbRelease.resolve(:distributor_id)
11
+
12
+ Facter::ResolvedFact.new(FACT_NAME, fact_value, :legacy)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Ol
5
+ module Os
6
+ module Distro
7
+ class Description
8
+ FACT_NAME = 'os.distro.description'
9
+
10
+ def call_the_resolver
11
+ fact_value = Facter::Resolvers::OsRelease.resolve(:pretty_name)
12
+
13
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Ol
5
+ module Os
6
+ module Distro
7
+ class Id
8
+ FACT_NAME = 'os.distro.id'
9
+
10
+ def call_the_resolver
11
+ fact_value = Facter::Resolvers::OsRelease.resolve(:id).capitalize
12
+
13
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -27,9 +27,9 @@ module Facts
27
27
 
28
28
  return { google: true } if manufacturer == 'Google'
29
29
 
30
- return { openstack: true } if Facter::Resolvers::DMIComputerSystem.resolve(:name) =~ /^OpenStack/
30
+ return { openstack: true } if /^OpenStack/.match?(Facter::Resolvers::DMIComputerSystem.resolve(:name))
31
31
 
32
- return { amazon: true } if manufacturer =~ /^Amazon/
32
+ return { amazon: true } if /^Amazon/.match?(manufacturer)
33
33
  end
34
34
  end
35
35
  end
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'facter/framework/logging/logger.rb'
4
+ require_relative '../../../facter/framework/logging/logger.rb'
5
5
  Facter::Log.output(STDERR)
6
- require 'facter'
7
- require 'facter/framework/cli/cli'
6
+ require_relative '../../../facter'
7
+ require_relative '../../../facter/framework/cli/cli'
8
8
 
9
9
  class CliLauncher
10
10
  class << self
@@ -38,6 +38,10 @@ module Facter
38
38
  @conf = {}
39
39
  end
40
40
 
41
+ def clear
42
+ @conf = {}
43
+ end
44
+
41
45
  private
42
46
 
43
47
  def log
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'facter/config'
3
+ require_relative '../../../facter/config'
4
4
 
5
5
  module Facter
6
6
  class FactGroups
@@ -64,7 +64,7 @@ module Facter
64
64
  def get_fact(fact_name)
65
65
  return @facts_ttls[fact_name] if @facts_ttls[fact_name]
66
66
 
67
- result = @facts_ttls.select { |name, fact| break fact if fact_name =~ /^#{name}\..*/ }
67
+ result = @facts_ttls.select { |name, fact| break fact if /^#{name}\..*/.match?(fact_name) }
68
68
  return nil if result == {}
69
69
 
70
70
  result
@@ -21,7 +21,19 @@ module Facter
21
21
  def load(user_query, options)
22
22
  @internal_facts = load_internal_facts(user_query, options)
23
23
  @custom_facts = load_custom_facts(options)
24
- @external_facts = load_external_facts(options)
24
+ if ENV['INSIDE_FACTER']
25
+ @log.debug('INSIDE_FACTER env var detected, not loading external facts to prevent recursion')
26
+ if options[:external_facts]
27
+ @log.warn('Recursion detected, skipping external facts. Silence this warning by adding --no-external-facts')
28
+ end
29
+ else
30
+ begin
31
+ ENV['INSIDE_FACTER'] = 'true'
32
+ @external_facts = load_external_facts(options)
33
+ ensure
34
+ ENV.delete('INSIDE_FACTER')
35
+ end
36
+ end
25
37
 
26
38
  filter_env_facts
27
39
 
@@ -103,7 +115,7 @@ module Facter
103
115
 
104
116
  blocked_facts.each do |blocked|
105
117
  facts.each do |fact|
106
- next unless fact.name =~ /^#{blocked}\..*|^#{blocked}$/
118
+ next unless /^#{blocked}\..*|^#{blocked}$/.match?(fact.name)
107
119
 
108
120
  if fact.type == :core
109
121
  reject_list_core << fact