Sha256: d525052baf92e7acc8ae995b39a53418434a34dd2ffb057984c7fa2a969a25cc

Contents?: true

Size: 967 Bytes

Versions: 10

Compression:

Stored size: 967 Bytes

Contents

module Rake
  module Funnel
    module Integration
      module TeamCity
        PROJECT_ENV_VAR = 'TEAMCITY_PROJECT_NAME'.freeze
        JRE_ENV_VAR = 'TEAMCITY_JRE'.freeze

        class << self
          def running?
            ENV.include?(PROJECT_ENV_VAR)
          end

          def rake_runner?
            running? && Object.const_defined?('Rake') && Rake.const_defined?('TeamCityApplication')
          end

          def with_java_runtime
            return unless block_given?

            begin
              original_path = ENV['PATH']

              ENV['PATH'] = ([] << ENV['PATH'] << teamcity_jre).compact.join(File::PATH_SEPARATOR)

              yield
            ensure
              ENV['PATH'] = original_path
            end
          end

          private

          def teamcity_jre
            return nil unless ENV.include?(JRE_ENV_VAR)
            File.join(ENV[JRE_ENV_VAR], 'bin')
          end
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
rake-funnel-0.22.2 lib/rake/funnel/integration/teamcity/teamcity.rb
rake-funnel-0.22.1 lib/rake/funnel/integration/teamcity/teamcity.rb
rake-funnel-0.22.0 lib/rake/funnel/integration/teamcity/teamcity.rb
rake-funnel-0.21.2 lib/rake/funnel/integration/teamcity/teamcity.rb
rake-funnel-0.21.1 lib/rake/funnel/integration/teamcity/teamcity.rb
rake-funnel-0.21.0 lib/rake/funnel/integration/teamcity/teamcity.rb
rake-funnel-0.20.2 lib/rake/funnel/integration/teamcity/teamcity.rb
rake-funnel-0.20.1 lib/rake/funnel/integration/teamcity/teamcity.rb
rake-funnel-0.20.0 lib/rake/funnel/integration/teamcity/teamcity.rb
rake-funnel-0.19.0 lib/rake/funnel/integration/teamcity/teamcity.rb