Class: Gitlab::CLI
- Inherits:
-
Object
- Object
- Gitlab::CLI
- Extended by:
- Helpers
- Defined in:
- lib/gitlab/cli.rb,
lib/gitlab/cli_helpers.rb
Defined Under Namespace
Modules: Helpers
Class Method Summary collapse
-
.render_output(cmd, args, data) ⇒ nil
Helper method that checks whether we want to get the output as json.
-
.run(cmd, args = []) ⇒ nil
Processes a CLI command and outputs a result to the stream (stdout).
-
.start(args) ⇒ Object
Starts a new CLI session.
Methods included from Helpers
actions, client, confirm_command, excluded_fields, get_keys, gitlab_helper, help, hex_color?, method_owners, output_json, output_table, record_hash, record_table, required_fields, symbolize_keys, valid_command?, yaml_load
Class Method Details
.render_output(cmd, args, data) ⇒ nil
Helper method that checks whether we want to get the output as json
84 85 86 87 88 89 90 |
# File 'lib/gitlab/cli.rb', line 84 def self.render_output(cmd, args, data) if @json_output output_json(cmd, args, data) else output_table(cmd, args, data) end end |
.run(cmd, args = []) ⇒ nil
Processes a CLI command and outputs a result to the stream (stdout).
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/gitlab/cli.rb', line 39 def self.run(cmd, args = []) case cmd when 'help' puts help(args.shift) { |out| out.gsub!(/Gitlab\./, 'gitlab ') } when 'info' endpoint = Gitlab.endpoint || 'not set' private_token = Gitlab.private_token || 'not set' puts "Gitlab endpoint is #{endpoint}" puts "Gitlab private token is #{private_token}" puts "Ruby Version is #{RUBY_VERSION}" puts "Gitlab Ruby Gem #{Gitlab::VERSION}" when '-v', '--version' puts "Gitlab Ruby Gem #{Gitlab::VERSION}" when 'shell' Gitlab::Shell.start else if args.include? '--json' @json_output = true args.delete '--json' end unless valid_command?(cmd) puts 'Unknown command. Run `gitlab help` for a list of available commands.' exit(1) end command_args = args.any? && args.last.start_with?('--only=', '--except=') ? args[0..-2] : args begin command_args.map! { |arg| symbolize_keys(yaml_load(arg)) } rescue StandardError => e puts e. exit 1 end confirm_command(cmd) data = gitlab_helper(cmd, command_args) { exit(1) } render_output(cmd, args, data) end end |
.start(args) ⇒ Object
Starts a new CLI session.
21 22 23 24 25 26 27 28 |
# File 'lib/gitlab/cli.rb', line 21 def self.start(args) command = begin args.shift.strip rescue StandardError 'help' end run(command, args) end |