class Gitlab::Lint::Client::Args
Constants
- API_PATH
Attributes
baseUrl[R]
pathToYamlFile[R]
timeout[R]
url[R]
Public Class Methods
new()
click to toggle source
# File lib/gitlab/lint/client/args.rb, line 18 def initialize() @version = Gitlab::Lint::Client::VERSION end
Public Instance Methods
get(args)
click to toggle source
# File lib/gitlab/lint/client/args.rb, line 22 def get(args) options = {} optparse = OptionParser.new do|opt| opt.banner = 'Usage: validate-gitlab-ci [options]' opt.on('-f', '--yaml=YAML-PATH', 'Path to .gitlab-ci.yml') { |o| options[:yamlFile] = o } opt.on('-u', '--base-url=BASE_URL', 'GitLab API url') { |o| options[:baseUrl] = o } options[:timeout] = 10 opt.on('-t', '--timeout[=TIMEOUT]', Integer, 'Api timeout in seconds') { |o| options[:timeout] = o } opt.on('-v', '--version', 'Program version') { |o| options[:version] = version() } end begin optparse.parse!(args) if options[:version].nil? mandatory = [:yamlFile, :baseUrl] missing = mandatory.select{ |param| options[param].nil? } if not missing.empty? STDERR.puts "Required options #{missing[0]} are missing: #{missing.join(", ")}" puts optparse.help abort("Exiting due to error encountered while parsing arguments") end end rescue OptionParser::InvalidOption, OptionParser::MissingArgument => error STDERR.puts error puts optparse abort("Exiting due to error encountered while parsing arguments...") end self.validateUrl!(options[:baseUrl]) self.validateYamlFile!(options[:yamlFile]) @baseUrl = options[:baseUrl] @url = options[:baseUrl] + API_PATH @pathToYamlFile = options[:yamlFile] @timeout = options[:timeout] end
validateUrl!(url)
click to toggle source
# File lib/gitlab/lint/client/args.rb, line 64 def validateUrl!(url) uri = URI.parse(url) valid = uri.is_a?(URI::HTTPS) && !uri.host.nil? raise URI::InvalidURIError unless valid end
validateYamlFile!(path)
click to toggle source
# File lib/gitlab/lint/client/args.rb, line 71 def validateYamlFile!(path) raise ArgumentError unless path.chars.last(4).join == ".yml" or path.chars.last(5).join == ".yaml" raise IOError unless ::File.exist?(path) raise RuntimeError unless ::File.readable?(path) end
version()
click to toggle source
# File lib/gitlab/lint/client/args.rb, line 77 def version() string = "GitLab Lint Client Version: #{@version}" puts string exit 0 end