Class: NextcloudReleaseAgent::CLI

Inherits:
Object
  • Object
show all
Defined in:
lib/nextcloud_release_agent/cli.rb

Constant Summary collapse

SUBCOMMANDS =
%w[format prepare publish run monitor].freeze

Instance Method Summary collapse

Constructor Details

#initialize(argv) ⇒ CLI

Returns a new instance of CLI.



875
876
877
# File 'lib/nextcloud_release_agent/cli.rb', line 875

def initialize(argv)
  @argv = argv.dup
end

Instance Method Details

#runObject



879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
# File 'lib/nextcloud_release_agent/cli.rb', line 879

def run
  subcommand = @argv.shift
  return usage if subcommand.nil? || %w[-h --help help].include?(subcommand)
  raise Error, "unknown subcommand: #{subcommand}" unless SUBCOMMANDS.include?(subcommand)

  options = default_options
  parser = option_parser(options)
  parser.parse!(@argv)

  manager = ReleaseManager.new(options)
  case subcommand
  when "format"
    manager.format_changelog
  when "prepare"
    manager.prepare
  when "publish"
    manager.publish(@argv.shift)
  when "run"
    manager.run
  when "monitor"
    manager.monitor(@argv.shift)
  end
  0
rescue Error, OptionParser::ParseError => error
  $stderr.puts("[ERROR] #{error.message}")
  1
end