class Upstreamer::CLI
Public Class Methods
new(argv = ARGV)
click to toggle source
# File lib/upstreamer/cli.rb, line 12 def initialize(argv = ARGV) @argv = argv end
run(argv = ARGV)
click to toggle source
# File lib/upstreamer/cli.rb, line 8 def self.run(argv = ARGV) self.new(argv).run end
Public Instance Methods
current_directory()
click to toggle source
# File lib/upstreamer/cli.rb, line 47 def current_directory Dir.pwd end
log_error(message)
click to toggle source
# File lib/upstreamer/cli.rb, line 51 def log_error(message) STDERR.puts(message) unless quiet end
quiet()
click to toggle source
# File lib/upstreamer/cli.rb, line 55 def quiet false end
run()
click to toggle source
# File lib/upstreamer/cli.rb, line 16 def run directory = specified_directory || current_directory repo = Rugged::Repository.new(directory) if repo.remotes['upstream'] log_error "Error: Remote 'upstream' already exists. (#{repo.remotes['upstream'].url})" return end remote = repo.remotes['origin'] # https://github.com/meganemura/bundler.git unless remote log_error "Error: Could not find remote 'origin'. (#{directory})" return end username_repository = remote.url[/github.com\/(.*)\.git/, 1] # meganemura/bundler repository = Octokit.repository(username_repository) unless repository.fork? log_error "Error: This repository is not forked repository. (#{directory})" return end upstream_url = repository.parent.clone_url repo.remotes.create('upstream', upstream_url) puts "git remote add upstream #{upstream_url}" end
specified_directory()
click to toggle source
# File lib/upstreamer/cli.rb, line 43 def specified_directory @argv.first end