Sha256: e8e75678eaa5898d01829a63c6e4ec0b07e458e7cfa772ec56bf8b2c56a3a48d

Contents?: true

Size: 1.92 KB

Versions: 1

Compression:

Stored size: 1.92 KB

Contents

# frozen_string_literal: true

require_relative 'validations'

module Superbot
  module Teleport
    module CLI
      class RootCommand < Clamp::Command
        include Superbot::Teleport::Validations

        option ['-v', '--version'], :flag, "Show version information" do
          puts Superbot::Teleport::VERSION
          exit 0
        end

        option ['--browser'], 'BROWSER', "Browser type to use. Can be either local or cloud", default: 'cloud'
        option ['--region'], 'REGION', "Region for remote webdriver"
        option ['--org'], "ORGANIZATION", "Name of organization to take action on", environment_variable: "SUPERBOT_ORG", attribute_name: :organization, default: Superbot::Cloud.credentials&.fetch(:organization, nil)

        option ['--ignore-delete'], :flag, "Reuse existing session"
        option ['--keep-session'], :flag, "Keep session when teleport closing"
        option ['--session'], 'SESSION', "Session to use in teleport"

        def execute
          validate_teleport_options(browser, organization, session)

          run_local_chromedriver if browser == 'local'

          puts 'Opening teleport...', ''
          puts 'Configure your remote webdriver to http://localhost:4567/wd/hub', ''
          puts 'Press [control+c] to exit', ''

          @web = Superbot::Web.run!(
            webdriver_type: browser,
            region: region,
            organization: organization,
            ignore_delete: session || ignore_delete?,
            keep_session: session || keep_session?,
            session: session
          )

          at_exit do
            @web&.quit!
          end
        end

        def run_local_chromedriver
          chromedriver_path = Chromedriver::Helper.new.binary_path
          @chromedriver = Kommando.run_async "#{chromedriver_path} --silent --port=9515 --url-base=wd/hub"

          at_exit do
            @chromedriver&.kill
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
superbot-teleport-0.3.1 lib/superbot/teleport/cli/root_command.rb