def distro
return @distro if @distro
@distro = case issue
when %r{Debian GNU/Linux [6789]}
{:type => (x86? ? "debianoid_omnibus" : "debianoid_gem")}
when %r{Debian}
{:type => "debianoid_gem"}
when %r{Raspbian}
{:type => "debianoid_gem"}
when %r{Linux Mint}
{:type => "debianoid_gem"}
when %r{Ubuntu}i
{:type => (x86? ? "debianoid_omnibus" : "debianoid_gem")}
when %r{Linaro}
{:type => "debianoid_gem"}
when %r{CentOS}
{:type => "yum_omnibus"}
when %r{Amazon Linux}
{:type => "yum_omnibus"}
when %r{Red Hat Enterprise}
{:type => "yum_omnibus"}
when %r{Oracle Linux Server}
{:type => "yum_omnibus"}
when %r{Enterprise Linux Enterprise Linux Server}
{:type => "yum_omnibus"}
when %r{Fedora release}
{:type => "yum_omnibus"}
when %r{Scientific Linux}
{:type => "yum_omnibus"}
when %r{CloudLinux}
{:type => "yum_omnibus"}
when %r{SUSE Linux Enterprise Server 1[12]}
{:type => "omnibus"}
when %r{openSUSE 1[23]}, %r{openSUSE Leap 42}
{:type => "zypper_omnibus"}
when %r{This is \\n\.\\O \(\\s \\m \\r\) \\t}
{:type => "emerge_gem"}
when %r{Arch Linux}, %r{Manjaro Linux}
{:type => "pacman"}
else
raise "Distribution not recognized. Please run again with `-VV` option and file an issue: https://github.com/matschaffer/knife-solo/issues"
end
Chef::Log.debug("Distro detection yielded: #{@distro}")
@distro
end