Sha256: 0cbb90a0c9361ec4a656648b6ac570687054a86af5f4b3dcf9b13ed6cd70fd16
Contents?: true
Size: 1.47 KB
Versions: 2
Compression:
Stored size: 1.47 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 run 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>', 'specify line number (only meaningful on file mode)', Integer) { |n| @core.line = n } end.parse!(@args) @core.target, @core.file = *@args[0..1] 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.0.4 | lib/git/browse/remote/runner.rb |
git-browse-remote-0.0.3 | lib/git/browse/remote/runner.rb |