Sha256: 6a5851006f422d5b9b73a673d4888550a47792337df7f6fabee00e156038fc17

Contents?: true

Size: 1.31 KB

Versions: 3

Compression:

Stored size: 1.31 KB

Contents

require 'fileutils'

module Bozo::Publishers

  # Publisher that pushes package to nuget
  class Nuget

    def initialize
      @packages = []
      @api_key = ENV['NUGET_API_KEY']
    end

    def server(server)
      @server = server
    end

    def api_key(api_key)
      @api_key = api_key
    end

    def package(package)
      @packages << package
    end

    def execute
      raise Bozo::ConfigurationError.new 'You must specify a nuget server address' if @server.empty?

      if @packages.empty?
        Dir[File.join('dist', 'nuget', '**', '*')].each do |source_file|
          push File.expand_path(source_file)
        end
      else
        build_version_full = env['BUILD_VERSION_FULL']

        @packages.each do |package|
          Dir[File.join('dist', 'nuget', "#{package}.#{build_version_full}.nupkg")].each do |source_file|
            push File.expand_path(source_file)
          end
        end
      end
    end

    private

    def push(source_file)
      args = []
      args << File.expand_path(File.join('build', 'tools', 'nuget', 'NuGet.exe'))
      args << "push"
      args << "\"#{source_file}\""
      args << "-s #{@server}"

      if !@api_key.nil?
        args << "\"#{@api_key}\""
      end
      execute_command :nuget, args
    end
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
bozo-scripts-0.18.5 lib/bozo/publishers/nuget.rb
bozo-scripts-0.18.4 lib/bozo/publishers/nuget.rb
bozo-scripts-0.18.3 lib/bozo/publishers/nuget.rb