6b841fee7c
Only 2 main Vagrant calls are now needed (`vagrant up` and `vagrant up machine1`). This PR only updates the Vagrant Virtualbox setup. The Vagrant Libvirt and Terraform still need to be updated. This uses docker-compose as the entry point for standing up the stack and makes the stand-up of the sandbox more portal. Vagrant and Terraform are only responsible for standing up infrastructure and then running docker-compose, not for running any glue scripts. The docker-compose calls out to single-shot services to do all the glue required to get the fully functional Tinkerbell stack up and running. All the single-shot services are idempotent. This increases portability and the development iteration loop. This also simplifies the required steps needed to get a fully functioning sandbox up and running. This is intended to help people looking to get started by getting them to a provisioned machine quicker and more easily. Signed-off-by: Jacob Weinstock <jakobweinstock@gmail.com>
31 lines
531 B
Go
31 lines
531 B
Go
package git
|
|
|
|
import (
|
|
g "github.com/go-git/go-git/v5"
|
|
"github.com/go-git/go-git/v5/storage/memory"
|
|
)
|
|
|
|
type Repository struct {
|
|
repo *g.Repository
|
|
}
|
|
|
|
func Clone(remote string) (*Repository, error) {
|
|
repo := &Repository{}
|
|
r, err := g.Clone(memory.NewStorage(), nil, &g.CloneOptions{
|
|
URL: remote,
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
repo.repo = r
|
|
return repo, nil
|
|
}
|
|
|
|
func (r *Repository) GetHeadHash() (string, error) {
|
|
ref, err := r.repo.Head()
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return ref.Hash().String(), nil
|
|
}
|