From 1742038eb7ec8fcb25009ce8b270b420183875bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20R=C3=BCckert?= Date: Thu, 24 Jul 2014 16:54:45 +0200 Subject: [PATCH 2/7] added basic config file support to gem2rpm in yaml format. There is no validation as it is basically a hash where certain keys are picked up by our templates. --- bin/gem2rpm | 21 +++++++++++++++++++-- lib/gem2rpm.rb | 3 ++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/bin/gem2rpm b/bin/gem2rpm index fa7ce6b..7f28603 100755 --- a/bin/gem2rpm +++ b/bin/gem2rpm @@ -8,6 +8,7 @@ require 'optparse' require 'fileutils' require 'open-uri' require 'uri' +require 'yaml' opts = OptionParser.new("Usage: #{$0} [OPTIONS] GEM") opts.separator(" Convert ruby Gems to source RPMs and specfiles") @@ -23,6 +24,8 @@ deps = false nongem = false doc_subpackage = true fetch = false +config_file = nil +config = {} opts.separator("") opts.separator(" Options:") @@ -58,6 +61,9 @@ end opts.on("--fetch", "Fetch the gem from rubygems.org") do |val| fetch = true end +opts.on("--config FILE", "Path to gem2rpm.yaml") do |val| + config_file = val +end opts.separator("") opts.separator(" Arguments:") opts.separator(" GEM the path to locally stored gem package file or the name") @@ -127,13 +133,24 @@ if srpm end end +if config_file + begin + config = YAML.load_file(config_file) + config[:sources] ||= [] + config[:sources] << File.basename(config_file) + rescue Exception => ex + $stderr.puts "Failed to load config file '#{config_file}': #{ex}" + exit 1 + end +end + # Produce a specfile if output_file.nil? - Gem2Rpm::convert(gemfile, template, $stdout, nongem, local, doc_subpackage) unless deps + Gem2Rpm::convert(gemfile, template, $stdout, nongem, local, doc_subpackage, config) unless deps else begin out = open(output_file, "w") - Gem2Rpm::convert(gemfile, template, out, nongem, local, doc_subpackage) + Gem2Rpm::convert(gemfile, template, out, nongem, local, doc_subpackage, config) ensure out.close() end diff --git a/lib/gem2rpm.rb b/lib/gem2rpm.rb index 017ecd1..e5e2693 100644 --- a/lib/gem2rpm.rb +++ b/lib/gem2rpm.rb @@ -31,12 +31,13 @@ module Gem2Rpm end def Gem2Rpm.convert(fname, template=TEMPLATE, out=$stdout, - nongem=true, local=false, doc_subpackage = true) + nongem=true, local=false, doc_subpackage = true, config={}) package = Gem2Rpm::Package.new(fname) # Deprecate, kept just for backward compatibility. format = Gem2Rpm::Format.new(package) spec = Gem2Rpm::Specification.new(package.spec) spec.description ||= spec.summary + config ||= {} download_path = "" unless local begin -- 1.8.4.5