all repos — homestead @ b8fdd74d857b45c0ad573ff700bfd0bfbec3099c

Code for my website

update source repository if worktree exists

Alan Pearce
commit

b8fdd74d857b45c0ad573ff700bfd0bfbec3099c

parent

bd77f727dca007014f42269b9dd48b92df28f657

1 file changed, 15 insertions(+), 12 deletions(-)

changed files
M internal/vcs/repository.gointernal/vcs/repository.go
@@ -23,10 +23,11 @@ repo *git.Repository
log *log.Logger } -func CloneOrOpen(cfg *Options, log *log.Logger) (repo *Repository, err error) { +func CloneOrOpen(cfg *Options, log *log.Logger) (repo *Repository, err error, exists bool) { stat, err := os.Stat(cfg.LocalPath) - if err != nil && errors.Is(err, fs.ErrNotExist) { - return nil, err + exists = err == nil + if err != nil && !errors.Is(err, fs.ErrNotExist) { + return } repo = &Repository{ log: log,
@@ -43,15 +44,8 @@
return } -func (r *Repository) Update() (bool, error) { - r.log.Info("updating repository") - - head, err := r.repo.Head() - if err != nil { - return false, err - } - - r.log.Info("updating from", "rev", head.Hash().String()) +func (r *Repository) Update() (updated bool, err error) { + r.log.Info("updating repository", "from", r.headSHA()) err = r.repo.Fetch(&git.FetchOptions{ Prune: true, })
@@ -119,3 +113,12 @@ }
return nil } + +func (r *Repository) headSHA() string { + head, err := r.repo.Head() + if err != nil { + return "" + } + + return head.Hash().String() +}