mirror of
https://github.com/1f349/gomvn.git
synced 2024-10-18 09:21:48 +01:00
42 lines
1.0 KiB
Go
42 lines
1.0 KiB
Go
package paths
|
|
|
|
import (
|
|
"github.com/1f349/gomvn/database"
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
func GetRepositories(basePath string, repository []string) (map[string][]*database.Artifact, error) {
|
|
result := map[string][]*database.Artifact{}
|
|
for _, repo := range repository {
|
|
result[repo] = []*database.Artifact{}
|
|
repoPath := filepath.Join(basePath, repo)
|
|
err := filepath.Walk(repoPath, func(path string, info os.FileInfo, err error) error {
|
|
if strings.HasSuffix(path, ".pom") {
|
|
path = strings.Replace(path, "\\", "/", -1)
|
|
path = strings.Replace(path, repoPath+"/", "", 1)
|
|
artifact := newArtifact(path, info.ModTime())
|
|
result[repo] = append(result[repo], artifact)
|
|
}
|
|
return nil
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
return result, nil
|
|
}
|
|
|
|
func newArtifact(p string, mod time.Time) *database.Artifact {
|
|
parts := strings.Split(p, "/")
|
|
last := len(parts) - 1
|
|
return &database.Artifact{
|
|
MvnGroup: strings.Join(parts[0:last-2], "."),
|
|
Artifact: parts[last-2],
|
|
Version: parts[last-1],
|
|
Modified: mod,
|
|
}
|
|
}
|