Sha256: 0cac3ea4764cd82e48b0ae9fa491a4f90e21029e8647dbf1d377b94c082ef3d5
Contents?: true
Size: 1.5 KB
Versions: 4
Compression:
Stored size: 1.5 KB
Contents
#!/usr/bin/env ruby require 'utils/markdown' include Utils::Markdown require 'utils/pager' require 'term/ansicolor' include Term::ANSIColor require 'shellwords' cmd = %{git log --color=always --pretty=format:"commit %H%C(auto)%d%nDate: %Cgreen%cD (%cr)%Creset%nAuthor: %Cblue%an <%ae>%Creset%n%nMARKUP%n%s%n%n%b%nMARKDOWN%n"} core_pager = `git config get core.pager`.chomp.full? git_pager = ENV['GIT_PAGER'].full? default_pager = ENV['PAGER'].full? if fallback_pager = `which less`.chomp.full? || `which more`.chomp.full? fallback_pager << ' -r' end my_pager = git_pager || core_pager || default_pager || fallback_pager repo_url = case git_origin_url = `git remote get-url origin`.chomp when %r(\Ahttps://) u = git_origin_url.sub(%r(\.git\z), '') u << '/commit/' when %r(\Agit@github.com:([^.]+)) "https://github.com/#$1/commit/" end Utils::Pager.pager(command: my_pager) do |output| IO.popen("#{cmd} #{Shellwords.join(ARGV)}") do |log| until log.eof? message = nil log.each do |line| case line when /^MARKUP$/ message = '' when /^MARKDOWN$/ output.puts markdown(message + "\n---\n") message = nil else if message message << line else output.puts line.sub(/(?<=^commit )(\h{40})/) { yellow { repo_url ? hyperlink(repo_url + $1) { $1 } : $1 } } end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
utils-0.59.2 | bin/git-md |
utils-0.59.1 | bin/git-md |
utils-0.59.0 | bin/git-md |
utils-0.58.0 | bin/git-md |