Sha256: 622d712d0824dd2b35d3f4646fcba0143b752b5cb9453ab6d8fdb7edf71ef70a

Contents?: true

Size: 669 Bytes

Versions: 1

Compression:

Stored size: 669 Bytes

Contents

module Rundock
  module Operation
    class Command < Base
      def run(backend, attributes = {})
        @instruction.each do |i|
          if i.is_a?(Hash)
            attributes.merge!(i)
            next
          end

          Logger.info("start command: #{i}")

          backend.run_commands(
            assign_args(i, attributes[:task_args]), attributes
          )
        end
      end

      private

      def assign_args(cmd, args)
        return cmd unless args
        cmd.gsub(/\$#/, args.length.to_s)
           .gsub(/\$@/, args.join(' '))
           .gsub(/\$[1-9]*/) { |arg_n| args[arg_n.chars[1..-1].join.to_i - 1] }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rundock-1.0.4 lib/rundock/operation/command.rb