Sha256: aad12bf2d8181448f8f4443b30826cf8c40ed2c5fae44605a6ea1283d07e933c
Contents?: true
Size: 1.55 KB
Versions: 2
Compression:
Stored size: 1.55 KB
Contents
require 'git/browse/remote/core' require 'git/browse/remote/version' require 'optparse' module Git::Browse::Remote class Runner def initialize(args) @args = args @core = Core.new end def parse_args! OptionParser.new do |opt| opt.banner = 'git browse-remote [options] [<commit> | <remote>] [--] [<file>]' opt.version = VERSION opt.on('-r', '--remote=<remote>', 'specify remote') { |r| @core.remote = r } opt.on('--stdout', 'prints URL instead of opening browser') { @stdout = true } opt.on('--top', 'open `top` page') { @core.mode = :top } opt.on('--rev', 'open `rev` page') { @core.mode = :rev } opt.on('--ref', 'open `ref` page') { @core.mode = :ref } opt.on('--init [<host>=<recipe>]', 'initialize default url mappings') do |config| if config host, name = *config.split(/=/, 2) else host, name = 'github.com', 'github' end STDERR.puts "Writing config for #{host}..." @core.init!(host, name.to_sym) STDERR.puts 'Mappings generated:' exec "git config --get-regexp ^browse-remote\\.#{host}\\." end opt.on('-L <n>[,<m>]', 'specify line number (only meaningful on file mode)') { |lines| @core.lines = lines.split(/[,\-]/).map(&:to_i).uniq } end.parse!(@args) @core.target, @core.file = *@args[0..1] end def run parse_args! if @stdout puts @core.url else exec 'git', 'web--browse', @core.url end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
git-browse-remote-0.1.1 | lib/git/browse/remote/runner.rb |
git-browse-remote-0.1.0 | lib/git/browse/remote/runner.rb |