$LOAD_PATH.unshift File.expand_path(".", "locallibs/ruby-rpm-ffi/lib") require "rpm" require_relative "runner" class RepoManager attr :path, :error, :last_status, :last_pid def initialize(path) @error = nil unless File.exist? (path) Dir.mkdir(path) end @path = path end def create_repo repo_path = File.join(@path, "repodata") cmd_args = %Q(/usr/bin/createrepo_c --database --workers 1 "#{@path}") if File.exist?(repo_path) cmd_args = %Q(/usr/bin/createrepo_c --database --workers 1 --update "#{@path}") end cmd = Runner.new(cmd_args) cmd.run @last_status = cmd.exit_status @last_pid = cmd.pid end def get_rpm_info(path_to_rpm) res = { :error => nil } if File.exist?(path_to_rpm) pkg = RPM::Package.open(path_to_rpm) res[:pkginfo] = pkg else res[:error] = "#{path_to_rpm} не существует" end res end end