Sha256: db9390999722a39a5f3c372879fd88f7f66b6486b6a175b17daf2ca5cb38b3b8

Contents?: true

Size: 1.89 KB

Versions: 1

Compression:

Stored size: 1.89 KB

Contents

# Copyright (C) 2021-2025  Ruby-GNOME Project Team
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

require_relative "base"

module RubyGemsRequirementsSystem
  module Platform
    class Fedora < Base
      Platform.register(self)

      class << self
        def current_platform?
          os_release = OSRelease.new
          os_release.id == "fedora" or os_release.id_like.include?("fedora")
        end
      end

      def target?(platform)
        platform == "fedora"
      end

      def default_system_packages(packages)
        packages.collect {|package| "pkgconfig(#{package.id})"}
      end

      private
      def install_command_line(package)
        if package.start_with?("https://")
          package = resolve_package_url_template(package)
        end
        ["dnf", "install", "-y", package]
      end

      def need_super_user_priviledge?
        true
      end

      def resolve_package_url_template(package_url_template)
        os_release = OSRelease.new
        package_url_template % {
          distribution: os_release.id,
          major_version: major_version.to_s,
          version: os_release.version_id,
        }
      end

      def major_version
        major_version_string = OSRelease.new.version_id.split(".")[0]
        Integer(major_version_string, 10)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rubygems-requirements-system-0.0.2 lib/rubygems-requirements-system/platform/fedora.rb