Sha256: 70f069fb68b397afda2986d9eac833fcdb07842ad306c43d767a1c5f1f9b1ada

Contents?: true

Size: 1.92 KB

Versions: 2

Compression:

Stored size: 1.92 KB

Contents

#!/usr/bin/env ruby
# frozen_string_literal: true

require_relative '../lib/geet/commandline/configuration.rb'
require_relative '../lib/geet/commandline/commands.rb'
require_relative '../lib/geet/git/repository.rb'
Dir[File.join(__dir__, '../lib/geet/services/*.rb')].each { |filename| require filename }

class GeetLauncher
  include Geet
  include Geet::Commandline::Commands

  def launch
    commandline_configuration = Commandline::Configuration.new

    command, options = commandline_configuration.decode_argv || exit

    # `:upstream` is always false in the gist command case.
    repository = Git::Repository.new(upstream: !!options[:upstream])

    case command
    when GIST_CREATE_COMMAND
      filename = options.delete(:filename)
      options[:publik] = options.delete(:public) if options.key?(:public)

      Services::CreateGist.new.execute(repository, filename, options)
    when ISSUE_CREATE_COMMAND
      title, description = options.values_at(:title, :description)
      options[:milestone_pattern] = options.delete(:milestone) if options.key?(:milestone)

      Services::CreateIssue.new.execute(repository, title, description, options)
    when ISSUE_LIST_COMMAND
      Services::ListIssues.new.execute(repository)
    when LABEL_LIST_COMMAND
      Services::ListLabels.new.execute(repository)
    when MILESTONE_LIST_COMMAND
      Services::ListMilestones.new.execute(repository)
    when PR_CREATE_COMMAND
      title, description = options.values_at(:title, :description)
      options[:milestone_pattern] = options.delete(:milestone) if options.key?(:milestone)

      Services::CreatePr.new.execute(repository, title, description, options)
    when PR_LIST_COMMAND
      Services::ListPrs.new.execute(repository)
    when PR_MERGE_COMMAND
      Services::MergePr.new.execute(repository)
    else
      raise "Internal error - Unrecognized command #{command.inspect}"
    end
  end
end

if __FILE__ == $0
  GeetLauncher.new.launch
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
geet-0.1.11 bin/geet
geet-0.1.10 bin/geet