Sha256: f3d61fbc58852914ffa74e103692b70e011c42e8ce8288beacc133c65ed67784

Contents?: true

Size: 1.56 KB

Versions: 44

Compression:

Stored size: 1.56 KB

Contents

#!/usr/bin/env ruby

require 'rake'
require 'optparse'

class CiinaboxEcsCli

  def main(args)
    script_dir = File.expand_path File.dirname(__FILE__)
    old_pwd = Dir.pwd

    Rake::TaskManager.record_task_metadata = true

    Dir.chdir script_dir
    app = Rake.application
    app.init
    app.load_rakefile

    actions = app.tasks.map { |t| t.name.gsub('ciinabox:', '') }

    required_args_size = ENV.key?('CIINABOX') ? 1 : 2

    if (args.size() ==0) or
        (args.size() < required_args_size and (not %w(init full_install).include? args[0])) or
        (args[0] == 'help') or
        (not actions.include? args[0])
      STDERR.puts("Usage: ciinabox-ecs action1 action2 action3 ciinabox_name")
      STDERR.puts("Valid actions:")
      STDERR.printf("%-20s |%-20s\n\n", 'name', 'description')
      app.tasks.each do |action|
        STDERR.printf("%-20s |%-20s\n", action.name.gsub('ciinabox:', ''), action.comment)
      end
      exit 0 if args[0] == 'help'
      exit -1
    end

    methods = args[0..args.size()-2]

    unless ENV.key? 'CIINABOX'
      ciinabox_name = args[args.size()-1]
      ENV['CIINABOX'] = ciinabox_name
    end

    if ENV.key? 'CIINABOXES_DIR'
      ENV['CIINABOXES_DIR'] = File.expand_path(ENV['CIINABOXES_DIR'])
    else
      ENV['CIINABOXES_DIR'] = old_pwd
    end

    methods.each do |method_name|
      Dir.chdir(script_dir)
      Rake.application = nil
      app = Rake.application
      app.init
      app.load_rakefile
      Dir.chdir(old_pwd)
      app["ciinabox:#{method_name}"].invoke()
    end

  end

end

CiinaboxEcsCli.new.main(ARGV)

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
ciinabox-ecs-0.4.2 bin/ciinabox-ecs.rb
ciinabox-ecs-0.4.1 bin/ciinabox-ecs.rb
ciinabox-ecs-0.3.2 bin/ciinabox-ecs.rb
ciinabox-ecs-0.3.2.alpha.1622701697 bin/ciinabox-ecs.rb
ciinabox-ecs-0.3.1.alpha.1622698898 bin/ciinabox-ecs.rb
ciinabox-ecs-0.3.1.alpha.1622695860 bin/ciinabox-ecs.rb
ciinabox-ecs-0.3.1 bin/ciinabox-ecs.rb
ciinabox-ecs-0.3.1.alpha.1617687041 bin/ciinabox-ecs.rb
ciinabox-ecs-0.3.0.alpha.1617686815 bin/ciinabox-ecs.rb
ciinabox-ecs-0.3.0 bin/ciinabox-ecs.rb
ciinabox-ecs-0.3.0.alpha.1612412532 bin/ciinabox-ecs.rb
ciinabox-ecs-0.3.0.alpha.1612411765 bin/ciinabox-ecs.rb
ciinabox-ecs-0.3.0.alpha.1612323213 bin/ciinabox-ecs.rb
ciinabox-ecs-0.2.17.alpha.1612322070 bin/ciinabox-ecs.rb
ciinabox-ecs-0.2.17.alpha.1608078804 bin/ciinabox-ecs.rb
ciinabox-ecs-0.2.17 bin/ciinabox-ecs.rb
ciinabox-ecs-0.2.16 bin/ciinabox-ecs.rb
ciinabox-ecs-0.2.15.alpha.1565746583 bin/ciinabox-ecs.rb
ciinabox-ecs-0.2.15 bin/ciinabox-ecs.rb
ciinabox-ecs-0.2.14.alpha.1565134498 bin/ciinabox-ecs.rb