class InfraCommand

def check_target(target, config)

${namespace}.${site}
${namespace}
targets can be...
def check_target(target, config)
  # raise NamespaceNotFoundError if target.nil?
  # targets       = target.split('.').map(&:to_sym)
  # namespaces    = config[:namespace].keys.map(&:to_sym)
  # runtype       = nil
  # environments  = []
  # namespaces.each do |ns_name|
  #   environments.concat(config[:namespace][ns_name].keys.map(&:to_sym))
  # end
  # raise NamespaceNotFoundError unless namespaces.include?(targets[0])
  # namespaces.each do |ns_name|
  #   environments.each do |e_name|
  #     sites = config[:namespace][ns_name][e_name][:sites] || []
  #
  #     next if sites.empty?
  #
  #     site_names = []
  #     sites.each do |site|
  #       site_names << site[:name]
  #     end
  #
  #     raise SiteNotFoundError unless site_names.include?(targets[1].to_sym)
  #
  #     projects = config[:namespace][ns_name][e_name][:projects] || []
  #
  #     next if projects.empty?
  #
  #     project_names = []
  #     projects.each do |project|
  #       project_names << project[:name]
  #     end
  #
  #     raise ProjectNotFoundError \
  #     unless project_names
  #            .include?(
  #              targets[2].to_sym
  #            )
  #   end
  # end
end