Sha256: 6f99ce78dadf0b2677746646b9eb81477d344b0c12b173e382d317aacc9fbf63

Contents?: true

Size: 1.39 KB

Versions: 15

Compression:

Stored size: 1.39 KB

Contents

# frozen_string_literal: true

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 do |t|
          [t.fly_ensure_task_name]
        end)
        default_description(RakeFactory::DynamicValue.new do |t|
          target = t.target || '<derived>'

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

        parameter :target, required: true

        parameter :home_directory,
                  default: RakeFactory::DynamicValue.new { |_|
                             Dir.home
                           }

        parameter :login_task_name, default: :login

        parameter :fly_ensure_task_name, default: :'fly:ensure'

        action do |t, args|
          $stdout.puts("Ensuring target #{t.target} is logged in...")

          FileUtils.mkdir_p(t.home_directory)

          status = RubyFly.status(
            target: t.target,
            environment: {
              'HOME' => t.home_directory
            }
          )
          if status == :logged_in
            $stdout.puts('Already logged in. Continuing...')
          else
            $stdout.puts('Not logged in. Logging in...')
            t.application[t.login_task_name, t.scope].invoke(*args)
          end
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
rake_fly-2.16.0.pre.2 lib/rake_fly/tasks/authentication/ensure.rb
rake_fly-2.16.0.pre.1 lib/rake_fly/tasks/authentication/ensure.rb
rake_fly-2.15.0 lib/rake_fly/tasks/authentication/ensure.rb
rake_fly-2.14.0.pre.7 lib/rake_fly/tasks/authentication/ensure.rb
rake_fly-2.14.0.pre.6 lib/rake_fly/tasks/authentication/ensure.rb
rake_fly-2.14.0.pre.5 lib/rake_fly/tasks/authentication/ensure.rb
rake_fly-2.14.0.pre.4 lib/rake_fly/tasks/authentication/ensure.rb
rake_fly-2.14.0.pre.3 lib/rake_fly/tasks/authentication/ensure.rb
rake_fly-2.14.0.pre.2 lib/rake_fly/tasks/authentication/ensure.rb
rake_fly-2.14.0.pre.1 lib/rake_fly/tasks/authentication/ensure.rb
rake_fly-2.13.0 lib/rake_fly/tasks/authentication/ensure.rb
rake_fly-2.12.0.pre.2 lib/rake_fly/tasks/authentication/ensure.rb
rake_fly-2.12.0.pre.1 lib/rake_fly/tasks/authentication/ensure.rb
rake_fly-2.11.0 lib/rake_fly/tasks/authentication/ensure.rb
rake_fly-2.10.0.pre.4 lib/rake_fly/tasks/authentication/ensure.rb