597c928f4a162f4f44effb4f7365ce6b34006650
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / lib / puppet / parser / functions / is_mac_address.rb
1 #
2 # is_mac_address.rb
3 #
4 module Puppet::Parser::Functions
5   newfunction(:is_mac_address, :type => :rvalue, :doc => <<-DOC
6     Returns true if the string passed to this function is a valid mac address.
7     DOC
8              ) do |arguments|
9
10     if arguments.size != 1
11       raise(Puppet::ParseError, "is_mac_address(): Wrong number of arguments given #{arguments.size} for 1")
12     end
13
14     mac = arguments[0]
15
16     return true if %r{^[a-f0-9]{1,2}(:[a-f0-9]{1,2}){5}$}i =~ mac
17     return true if %r{^[a-f0-9]{1,2}(:[a-f0-9]{1,2}){19}$}i =~ mac
18     return false
19   end
20 end
21
22 # vim: set ts=2 sw=2 et :