summaryrefslogtreecommitdiffstats
path: root/lib/facter/util
diff options
context:
space:
mode:
authorRein Henrichs <rein@puppetlabs.com>2010-08-18 14:45:53 -0700
committerRein Henrichs <rein@puppetlabs.com>2010-08-18 14:45:53 -0700
commit104e1e14fe9c7c71510561d9f073f8c316340265 (patch)
treef7aaf4ce00be21794bf69b38419a02cc917a9562 /lib/facter/util
parent65a5a51a39a3cb43d54aa457450f3b0afce6dc36 (diff)
parent4050acc291fa0d1773388f2c52d659b94249f1bd (diff)
downloadfacter-104e1e14fe9c7c71510561d9f073f8c316340265.tar.gz
facter-104e1e14fe9c7c71510561d9f073f8c316340265.tar.xz
facter-104e1e14fe9c7c71510561d9f073f8c316340265.zip
Merge branch 'ticket/master/3703-macaddress-on-mac' into next
Diffstat (limited to 'lib/facter/util')
-rw-r--r--lib/facter/util/macaddress.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/facter/util/macaddress.rb b/lib/facter/util/macaddress.rb
new file mode 100644
index 0000000..fc0a043
--- /dev/null
+++ b/lib/facter/util/macaddress.rb
@@ -0,0 +1,28 @@
+# A module to gather macaddress facts
+#
+module Facter::Util::Macaddress
+
+ module Darwin
+ def self.macaddress
+ iface = default_interface
+ Facter.warn "Could not find a default route. Using first non-loopback interface" if iface.empty?
+
+ macaddress = `#{ifconfig_command} #{iface} | /usr/bin/awk '/ether/{print $2;exit}'`.chomp
+ macaddress.empty? ? nil : macaddress
+ end
+
+ def self.default_interface
+ `#{netstat_command} | /usr/bin/awk '/^default/{print $6}'`.chomp
+ end
+
+ private
+
+ def self.netstat_command
+ '/usr/sbin/netstat -rn'
+ end
+
+ def self.ifconfig_command
+ '/sbin/ifconfig'
+ end
+ end
+end