internal/git/alternates/alternates.go (20 lines of code) (raw):
package alternates
import (
"fmt"
"path/filepath"
"strings"
)
// Env returns the alternate object directory environment variables.
func Env(repoPath, objectDirectory string, alternateObjectDirectories []string) []string {
var env []string
if objectDirectory != "" {
env = append(env, fmt.Sprintf("GIT_OBJECT_DIRECTORY=%s", filepath.Join(repoPath, objectDirectory)))
}
if len(alternateObjectDirectories) > 0 {
var dirsList []string
for _, dir := range alternateObjectDirectories {
dirsList = append(dirsList, filepath.Join(repoPath, dir))
}
env = append(env, fmt.Sprintf("GIT_ALTERNATE_OBJECT_DIRECTORIES=%s", strings.Join(dirsList, ":")))
}
return env
}