# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: BUSL-1.1

module VagrantPlugins
  module PodmanProvisioner
    module Cap
      module Centos
        module PodmanInstall
          def self.podman_install(machine, kubic)
            if kubic
              # Official install instructions for podman
              # https://podman.io/getting-started/installation.html
              case machine.guest.capability("flavor")
              when :centos_7
                machine.communicate.tap do |comm|
                  comm.sudo("curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_7/devel:kubic:libcontainers:stable.repo")
                  comm.sudo("yum -q -y install podman")
                end
              when :centos_8
                machine.communicate.tap do |comm|
                  comm.sudo("dnf -y module disable container-tools &> /dev/null || echo 'container-tools module does not exist'")
                  comm.sudo("dnf -y install 'dnf-command(copr)'")
                  comm.sudo("dnf -y copr enable rhcontainerbot/container-selinux")
                  comm.sudo("curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_8/devel:kubic:libcontainers:stable.repo")
                  comm.sudo("dnf -y install podman")
                end
              end
            else
              machine.communicate.tap do |comm|
                comm.sudo("yum -q -y install podman")
              end
            end
          end
        end
      end
    end
  end
end
