Sha256: 526febbf627f0f24a2f77d9327d7769150dccd112d7fa5dff0d92d4455f097d0

Contents?: true

Size: 970 Bytes

Versions: 23

Compression:

Stored size: 970 Bytes

Contents

require 'json'
require 'open3'

module Kite
  module Helpers
    # Helpers for concourse scripts
    module Concourse
      def self.params(data)
        JSON.parse data
      end

      def self.log(msg)
        msg.split("\n").each { |line| $stderr.puts("[LOG] --- #{line}") }
      end

      def self.respond(data)
        # keep only valid concourse values
        data.select! { |k, _| k.to_s =~ /(version|metadata)/ }
        puts JSON.dump(data)
      end

      def self.fatal(message)
        respond(version: { status: 'error' }, metadata: [message])
        exit 1
      end

      def self.execute(command, env = {}, gsub_log_args = nil)
        command_log = gsub_log_args ? command.gsub(*gsub_log_args) : command
        log("+ #{ command_log }")
        Open3.popen2e(env, command) do |stdin, stdout, wait_thr|
          ::Kite::Helpers::Concourse.log(stdout.read)
          return wait_thr.value.exitstatus.zero?
        end
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
kite-1.2.3 lib/kite/helpers/concourse.rb
kite-1.2.2 lib/kite/helpers/concourse.rb
kite-1.2.1 lib/kite/helpers/concourse.rb
kite-1.2.0 lib/kite/helpers/concourse.rb
kite-1.1.17 lib/kite/helpers/concourse.rb
kite-1.1.16 lib/kite/helpers/concourse.rb
kite-1.1.15 lib/kite/helpers/concourse.rb
kite-1.1.14 lib/kite/helpers/concourse.rb
kite-1.1.13 lib/kite/helpers/concourse.rb
kite-1.1.12 lib/kite/helpers/concourse.rb
kite-1.1.11 lib/kite/helpers/concourse.rb
kite-1.1.10 lib/kite/helpers/concourse.rb
kite-1.1.9 lib/kite/helpers/concourse.rb
kite-1.1.8 lib/kite/helpers/concourse.rb
kite-1.1.7 lib/kite/helpers/concourse.rb
kite-1.1.3 lib/kite/helpers/concourse.rb
kite-1.1.1 lib/kite/helpers/concourse.rb
kite-1.0.10 lib/kite/helpers/concourse.rb
kite-1.0.6 lib/kite/helpers/concourse.rb
kite-1.0.4 lib/kite/helpers/concourse.rb