Add GitRepositoryExtension
Add an extension for accessing Git-related meta data that can be mixed in into a Pathname object (e.g. `HOMBREW_REPOSITORY` or the path of a `Tap` instance). The goal here is to eliminate code duplication.
This commit is contained in:
parent
ec75ca7e42
commit
6cdc6b1460
47
Library/Homebrew/extend/git_repository.rb
Normal file
47
Library/Homebrew/extend/git_repository.rb
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
require "utils/git"
|
||||||
|
require "utils/popen"
|
||||||
|
|
||||||
|
module GitRepositoryExtension
|
||||||
|
def git?
|
||||||
|
join(".git").exist?
|
||||||
|
end
|
||||||
|
|
||||||
|
def git_origin
|
||||||
|
return unless git? && Utils.git_available?
|
||||||
|
cd do
|
||||||
|
Utils.popen_read("git", "config", "--get", "remote.origin.url").chuzzle
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def git_head
|
||||||
|
return unless git? && Utils.git_available?
|
||||||
|
cd do
|
||||||
|
Utils.popen_read("git", "rev-parse", "--verify", "-q", "HEAD").chuzzle
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def git_short_head
|
||||||
|
return unless git? && Utils.git_available?
|
||||||
|
cd do
|
||||||
|
Utils.popen_read(
|
||||||
|
"git", "rev-parse", "--short=4", "--verify", "-q", "HEAD"
|
||||||
|
).chuzzle
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def git_last_commit
|
||||||
|
return unless git? && Utils.git_available?
|
||||||
|
cd do
|
||||||
|
Utils.popen_read("git", "show", "-s", "--format=%cr", "HEAD").chuzzle
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def git_last_commit_date
|
||||||
|
return unless git? && Utils.git_available?
|
||||||
|
cd do
|
||||||
|
Utils.popen_read(
|
||||||
|
"git", "show", "-s", "--format=%cd", "--date=short", "HEAD"
|
||||||
|
).chuzzle
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@ -1,6 +1,7 @@
|
|||||||
require "extend/module"
|
require "extend/module"
|
||||||
require "extend/fileutils"
|
require "extend/fileutils"
|
||||||
require "extend/pathname"
|
require "extend/pathname"
|
||||||
|
require "extend/git_repository"
|
||||||
require "extend/ARGV"
|
require "extend/ARGV"
|
||||||
require "extend/string"
|
require "extend/string"
|
||||||
require "extend/enumerable"
|
require "extend/enumerable"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user