Sha256: b9820f4e46c4df24155a78ff83ffd9ca0accb44ac96cd0af6fb99cf440a1527f

Contents?: true

Size: 1.14 KB

Versions: 9

Compression:

Stored size: 1.14 KB

Contents

require File.expand_path("command_base", __dir__)

module Cardio
  class Command
    # enhance standard rake command with some decko/card -specific options
    class RakeCommand < CommandBase
      def initialize gem, command, args={}
        @command = command
        @task = "#{gem}:#{command}"
        @args = [args].flatten
        # 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}"
        task_cmd += " -- #{@args.join ' '}" unless @args.empty?
        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

9 entries across 9 versions & 1 rubygems

Version Path
card-1.107.0 lib/cardio/command/rake_command.rb
card-1.106.0 lib/cardio/command/rake_command.rb
card-1.105.6 lib/cardio/command/rake_command.rb
card-1.105.5 lib/cardio/command/rake_command.rb
card-1.105.4 lib/cardio/command/rake_command.rb
card-1.105.3 lib/cardio/command/rake_command.rb
card-1.105.2.pre1 lib/cardio/command/rake_command.rb
card-1.105.2 lib/cardio/command/rake_command.rb
card-1.105.1 lib/cardio/command/rake_command.rb