lib/specinfra/command/base/mail_alias.rb in specinfra-2.43.11 vs lib/specinfra/command/base/mail_alias.rb in specinfra-2.44.0

- old
+ new

@@ -1,9 +1,12 @@ class Specinfra::Command::Base::MailAlias < Specinfra::Command::Base class << self def check_is_aliased_to(mail_alias, recipient) - recipient = "[[:space:]]([\"']?)#{recipient}\\1" - "getent aliases #{escape(mail_alias)} | egrep -- #{escape(recipient)}$" + ## if the recipient contains pipes escape them + ## or egrep will interpret it as an OR + recipient = recipient.gsub(/\|/, '\|') + recipient = "[[:space:]]([\"']?)#{recipient}\\1(,|$)" + "getent aliases #{escape(mail_alias)} | egrep -- #{escape(recipient)}" end def add(mail_alias, recipient) "echo #{mail_alias}: #{recipient} >> /etc/aliases" end