Sha256: bd30a0a27bb68982f720e6e25ba13991abb955ee557f897109900710741e7060

Contents?: true

Size: 1.01 KB

Versions: 7

Compression:

Stored size: 1.01 KB

Contents

module Dpl
  module Providers
    class Hackage < Provider
      register :hackage

      status :alpha

      description sq(<<-str)
        tbd
      str

      env :hackage

      opt '--username USER', 'Hackage username', required: true
      opt '--password USER', 'Hackage password', required: true, secret: true
      opt '--publish', 'Whether or not to publish the package'

      cmds check:  'cabal check',
           sdist:  'cabal sdist',
           upload: 'cabal upload %{upload_opts} %{path}'

      errs check:  'cabal check failed',
           sdist:  'cabal sdist failed',
           upload: 'cabal upload failed'

      def validate
        shell :check
      end

      def prepare
        shell :sdist
      end

      def deploy
        tar_files.each do |path|
          shell :upload, path: path
        end
      end

      private

        def upload_opts
          opts_for(%i(publish username password))
        end

        def tar_files
          Dir.glob('dist/*.tar.gz').sort
        end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
dpl-2.0.3.beta.4 lib/dpl/providers/hackage.rb
dpl-2.0.3.beta.3 lib/dpl/providers/hackage.rb
dpl-2.0.3.beta.2 lib/dpl/providers/hackage.rb
dpl-2.0.3.beta.1 lib/dpl/providers/hackage.rb
dpl-2.0.2.beta.1 lib/dpl/providers/hackage.rb
dpl-2.0.0.beta.3 lib/dpl/providers/hackage.rb
dpl-2.0.0.beta.2 lib/dpl/providers/hackage.rb