Sha256: 5750026501c7daa374ba7e5daa2b681d43871369ebeb215dbb97434130a2c2dd

Contents?: true

Size: 1.94 KB

Versions: 1

Compression:

Stored size: 1.94 KB

Contents

require 'reap/systems/rubyforge'

module Reap

  class Manager

    # Returns Rubyforge system object.

    def rubyforge(options = nil)
      options = configure_options(options, 'rubyforge')

      rubyforge_options = {}
      rubyforge_options[:dryrun]   = dryrun?
      rubyforge_options[:trace]    = trace?
      rubyforge_options[:project]  = options.delete('project')  || metadata.project
      rubyforge_options[:username] = options.delete('username') || ENV['RUBYFORGE_USERNAME']
      rubyforge_options[:group_id] = options.delete('group')

      Rubyforge.new(rubyforge_options)
    end

    # Release packages to rubyforge.

    def rubyforge_release(options)
      release_options = configure_options(options, 'release')

      store   = 'pkg'
      version = metadata.version

      release_options['version'] = version
      release_options['store']   = store

      changelog = release_options['changelog'] #|| DEFAULT['release']['changelog'] || DEFAULT['rubyforge']['changelog']
      notelog   = release_options['notelog']   #|| DEFAULT['release']['notelog']   || DEFAULT['rubyforge']['notelog']

      changelog = Dir.glob(changelog.to_s, File::FNM_CASEFOLD).first
      notelog   = Dir.glob(notelog.to_s, File::FNM_CASEFOLD).first

      release_options['changelog'] = changelog if File.exist?(changelog)
      release_options['notelog']   = notelog   if File.exist?(notelog)

      files   = release_options['files'] || []

      if files.empty?
        files = Dir[File.join(store, '*')].select do |file|
          /#{version}[.]/ =~ file
        end
        release_options['files'] = files
        #files = Dir.glob(File.join(store,"#{name}-#{version}*"))
      end

      if dryrun?  # Not going to do dryrun in Rubyforge class b/c it still requires logging in.
        files.each do |file|
          puts "[DRYRUN] Release #{file}"
        end
      else
        host = rubyforge(options)
        host.release(release_options)
      end
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
reap-9.2.1 lib/reap/manager/rubyforge.rb