Sha256: 566b8d13efd4e56735cc3b499f019632a2949a4f78c25d242d2184490b299f64

Contents?: true

Size: 1014 Bytes

Versions: 6

Compression:

Stored size: 1014 Bytes

Contents

require File.expand_path("command", __dir__)
# require "pry"

module Cardio
  class Commands
    # enhance standard rake command with some decko/card -specific options
    class RakeCommand < Command
      def initialize rake_task, args={}
        @task = rake_task
        opts = {}
        if args.is_a? Array
          Parser.new(rake_task, opts).parse!(args)
        else
          opts = args
        end
        @envs = Array(opts[:envs])
      end

      def run
        commands.each do |cmd|
          puts cmd
          # exit_with_child_status cmd

          result = `#{cmd}`
          process = $CHILD_STATUS
          puts result
          exit process.exitstatus unless process.success?
        end
      end

      def commands
        task_cmd = "bundle exec rake #{@task}"
        return [task_cmd] if !@envs || @envs.empty?

        @envs.map do |env|
          "env RAILS_ENV=#{env} #{task_cmd}"
        end
      end
    end
  end
end

require File.expand_path("rake_command/parser", __dir__)

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
card-1.103.4 lib/cardio/commands/rake_command.rb
card-1.103.3 lib/cardio/commands/rake_command.rb
card-1.103.2 lib/cardio/commands/rake_command.rb
card-1.103.1 lib/cardio/commands/rake_command.rb
card-1.103.0 lib/cardio/commands/rake_command.rb
card-1.102.0 lib/cardio/commands/rake_command.rb