class JenkinsPipelineBuilder::CLI::Helper
This is the helper class that sets up the credentials from the command line parameters given and initializes the Jenkins Pipeline
Builder.
Constants
- DEFAULT_FILE_FORMATS
Attributes
jenkins_api_creds[RW]
Public Class Methods
process_cli_creds(options)
click to toggle source
# File lib/jenkins_pipeline_builder/cli/helper.rb, line 87 def self.process_cli_creds(options) self.jenkins_api_creds = {}.with_indifferent_access.merge options if jenkins_api_creds[:server] =~ Resolv::AddressRegex jenkins_api_creds[:server_ip] = jenkins_api_creds.delete :server elsif jenkins_api_creds[:server] =~ URI::DEFAULT_PARSER.make_regexp jenkins_api_creds[:server_url] = jenkins_api_creds.delete :server else msg = "server given (#{jenkins_api_creds[:server]}) is neither a URL nor an IP." msg << ' Please pass either a valid IP address or valid URI' warn msg exit 1 end end
process_creds(options)
click to toggle source
# File lib/jenkins_pipeline_builder/cli/helper.rb, line 58 def self.process_creds(options) default_file = find_default_file if options[:debug] self.jenkins_api_creds = { username: :foo, password: :bar, server_ip: :baz } elsif valid_cli_creds? options process_cli_creds(options) elsif options[:creds_file] process_creds_file options[:creds_file] elsif default_file process_creds_file default_file else msg = 'Credentials are not set. Please pass them as parameters or' msg << ' set them in the default credentials file' warn msg exit 1 end end
process_creds_file(file)
click to toggle source
# File lib/jenkins_pipeline_builder/cli/helper.rb, line 80 def self.process_creds_file(file) return load File.expand_path(file) if file.end_with? 'rb' return self.jenkins_api_creds = JSON.parse(IO.read(File.expand_path(file))) if file.end_with? 'json' self.jenkins_api_creds = YAML.load_file(File.expand_path(file)) end
setup(options)
click to toggle source
Sets up the credentials and initializes the Jenkins Pipeline
Builder
@param [Hash] options Options obtained from the command line
@return [JenkinsPipelineBuilder::Generator] A new Client object
# File lib/jenkins_pipeline_builder/cli/helper.rb, line 49 def self.setup(options) process_creds options JenkinsPipelineBuilder.credentials = jenkins_api_creds generator = JenkinsPipelineBuilder.generator JenkinsPipelineBuilder.debug! if options[:debug] generator end
valid_cli_creds?(options)
click to toggle source
# File lib/jenkins_pipeline_builder/cli/helper.rb, line 76 def self.valid_cli_creds?(options) options[:username] && options[:server] && (options[:password] || options[:password_base64]) end
Private Class Methods
find_default_file()
click to toggle source
# File lib/jenkins_pipeline_builder/cli/helper.rb, line 101 def self.find_default_file default_file_name = "#{ENV['HOME']}/.jenkins_api_client/login" found_suffix = nil DEFAULT_FILE_FORMATS.each do |suffix| next unless File.exist?("#{default_file_name}.#{suffix}") if !found_suffix found_suffix = suffix else logger.warn "Multiple default files found! Using '#{default_file_name}.#{found_suffix}' but \ '#{default_file_name}.#{suffix}' found." end end "#{ENV['HOME']}/.jenkins_api_client/login.#{found_suffix}" if found_suffix end
logger()
click to toggle source
# File lib/jenkins_pipeline_builder/cli/helper.rb, line 118 def self.logger JenkinsPipelineBuilder.logger end