summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/facter/netmask.rb35
-rw-r--r--lib/facter/util/netmask.rb36
2 files changed, 38 insertions, 33 deletions
diff --git a/lib/facter/netmask.rb b/lib/facter/netmask.rb
index 140f8f1..309ef63 100644
--- a/lib/facter/netmask.rb
+++ b/lib/facter/netmask.rb
@@ -6,43 +6,12 @@
# idea and originial source by Mark 'phips' Phillips
#
-def get_netmask
- netmask = nil;
- ipregex = %r{(\d{1,3}\.){3}\d{1,3}}
-
- ops = nil
- case Facter.value(:kernel)
- when 'Linux'
- ops = {
- :ifconfig => '/sbin/ifconfig',
- :regex => %r{\s+ inet\saddr: #{Facter.ipaddress} .*? Mask: (#{ipregex})}x,
- :munge => nil,
- }
- when 'SunOS'
- ops = {
- :ifconfig => '/usr/sbin/ifconfig -a',
- :regex => %r{\s+ inet\s+? #{Facter.ipaddress} \+? mask (\w{8})}x,
- :munge => Proc.new { |mask| mask.scan(/../).collect do |byte| byte.to_i(16) end.join('.') }
- }
- end
-
- %x{#{ops[:ifconfig]}}.split(/\n/).collect do |line|
- matches = line.match(ops[:regex])
- if !matches.nil?
- if ops[:munge].nil?
- netmask = matches[1]
- else
- netmask = ops[:munge].call(matches[1])
- end
- end
- end
- netmask
-end
+require 'facter/util/netmask'
Facter.add("netmask") do
confine :kernel => [ :sunos, :linux ]
setcode do
- get_netmask
+ Facter::NetMask.get_netmask
end
end
diff --git a/lib/facter/util/netmask.rb b/lib/facter/util/netmask.rb
new file mode 100644
index 0000000..71696ad
--- /dev/null
+++ b/lib/facter/util/netmask.rb
@@ -0,0 +1,36 @@
+module Facter::NetMask
+
+def self.get_netmask
+ netmask = nil;
+ ipregex = %r{(\d{1,3}\.){3}\d{1,3}}
+
+ ops = nil
+ case Facter.value(:kernel)
+ when 'Linux'
+ ops = {
+ :ifconfig => '/sbin/ifconfig',
+ :regex => %r{\s+ inet\saddr: #{Facter.ipaddress} .*? Mask: (#{ipregex})}x,
+ :munge => nil,
+ }
+ when 'SunOS'
+ ops = {
+ :ifconfig => '/usr/sbin/ifconfig -a',
+ :regex => %r{\s+ inet\s+? #{Facter.ipaddress} \+? mask (\w{8})}x,
+ :munge => Proc.new { |mask| mask.scan(/../).collect do |byte| byte.to_i(16) end.join('.') }
+ }
+ end
+
+ %x{#{ops[:ifconfig]}}.split(/\n/).collect do |line|
+ matches = line.match(ops[:regex])
+ if !matches.nil?
+ if ops[:munge].nil?
+ netmask = matches[1]
+ else
+ netmask = ops[:munge].call(matches[1])
+ end
+ end
+ end
+ netmask
+end
+
+end