def self.find(domain, prefix="/srv")
domain = domain.to_s.downcase
return nil unless domain =~ Symbiosis::Domain::NAME_REGEXP
possibles = [domain, domain.sub(/^(.*\.)?www\./,"")].collect do |possible|
dir = File.join(prefix, possible)
next unless File.directory?(dir)
begin
Domain.from_directory(dir)
rescue ArgumentError => err
warn err.to_s
end
end.compact
return nil if possibles.length == 0
return possibles.first if possibles.length == 1
until domain.nil?
match = possibles.find{|d| d.name == domain}
return match unless match.nil?
prefix, domain = domain.split(".",2)
end
return nil
end