mirror of
https://github.com/grdl/git-get.git
synced 2026-02-04 20:54:41 +00:00
33 lines
851 B
Go
33 lines
851 B
Go
package out
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
// DumpPrinter prints a list of repos in a dump file format.
|
|
type DumpPrinter struct{}
|
|
|
|
// NewDumpPrinter creates a DumpPrinter.
|
|
func NewDumpPrinter() *DumpPrinter {
|
|
return &DumpPrinter{}
|
|
}
|
|
|
|
// Print generates a list of repos URLs. Each line contains a URL and, if applicable, a currently checked out branch name.
|
|
// It's a way to dump all repositories managed by git-get and is supposed to be consumed by `git get --dump`.
|
|
func (p *DumpPrinter) Print(repos []Printable) string {
|
|
var str strings.Builder
|
|
|
|
for _, r := range repos {
|
|
str.WriteString(r.Remote())
|
|
|
|
// TODO: if head is detached maybe we should get the revision it points to in case it's a tag
|
|
if current := r.Current(); current != "" && current != head {
|
|
str.WriteString(" " + current)
|
|
}
|
|
|
|
str.WriteString("\n")
|
|
}
|
|
|
|
return str.String()
|
|
}
|