Sha256: f14126263743e4fd36344b8a0c7d4a4481247233c82fe1ef7d5cfa6bd0734460

Contents?: true

Size: 1.16 KB

Versions: 2

Compression:

Stored size: 1.16 KB

Contents

require 'ruby_fly'
require 'rake_factory'
require 'concourse'

module RakeFly
  module Tasks
    module Authentication
      class Ensure < RakeFactory::Task
        default_name :ensure
        default_prerequisites RakeFactory::DynamicValue.new { |t|
          [t.ensure_task_name]
        }
        default_description RakeFactory::DynamicValue.new { |t|
          target = t.target || '<derived>'

          "Ensure logged in for target #{target}"
        }

        parameter :target, required: true

        parameter :home_directory,
            default: RakeFactory::DynamicValue.new { |_| ENV['HOME'] }

        parameter :ensure_task_name, :default => :'fly:ensure'

        action do |t, args|
          puts "Ensuring target #{t.target} is logged in..."
          status = RubyFly.status(
              target: t.target,
              environment: {
                  "HOME" => t.home_directory
              })
          if status == :logged_in
            puts "Already logged in. Continuing..."
          else
            puts "Not logged in. Logging in..."
            t.application[:login, t.scope].invoke(*args)
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rake_fly-2.2.0.pre.6 lib/rake_fly/tasks/authentication/ensure.rb
rake_fly-2.2.0.pre.5 lib/rake_fly/tasks/authentication/ensure.rb