@@ -9,12 +9,16 @@ import (
99)
1010
1111func NewJsonMetaRepo (repositoryPath string ) * JsonMetaRepo {
12- return & JsonMetaRepo {metaDataFile : metaDataFile (repositoryPath )}
12+ return & JsonMetaRepo {
13+ localDataFile : localDataFile (repositoryPath ),
14+ metaDataFile : metaDataFile (repositoryPath ),
15+ }
1316}
1417
1518// A meta repo that stores meta data in JSON files in the specified directory.
1619type JsonMetaRepo struct {
17- metaDataFile string
20+ localDataFile string
21+ metaDataFile string
1822}
1923
2024/* Local repositories */
@@ -39,14 +43,14 @@ func (repo *JsonMetaRepo) AddLocals(localPaths []string) error {
3943}
4044
4145func (repo * JsonMetaRepo ) addLocal (localPath string ) error {
42- return repo . updateFile (func (rootObject * rootObjectData ) {
46+ return updateFile (repo . localDataFile , func (rootObject * rootObjectData ) {
4347 rootObject .MetaRepo .AppendLocalRepository (localRepositoryData {Path : localPath })
4448 })
4549}
4650
4751func (repo * JsonMetaRepo ) ListLocal () (core.Repositories , error ) {
4852 return queryFile (
49- repo .metaDataFile ,
53+ repo .localDataFile ,
5054 core .NoRepositories (),
5155 func (rootObject * rootObjectData ) (core.Repositories , error ) {
5256 return rootObject .MetaRepo .MapLocalRepositories ()
@@ -75,7 +79,7 @@ func (repo *JsonMetaRepo) AddRemotes(hostUrls []*url.URL) error {
7579}
7680
7781func (repo * JsonMetaRepo ) addRemote (hostUrl * url.URL ) error {
78- return repo . updateFile (func (rootObject * rootObjectData ) {
82+ return updateFile (repo . metaDataFile , func (rootObject * rootObjectData ) {
7983 rootObject .MetaRepo .AppendRemoteRepository (remoteRepositoryData {Url : hostUrl .String ()})
8084 })
8185}
@@ -92,12 +96,12 @@ func (repo *JsonMetaRepo) ListRemote() (core.Repositories, error) {
9296/* I/O */
9397
9498func queryFile [V any ](
95- metaDataFile string ,
99+ dataFile string ,
96100 defaultValue V ,
97101 queryData func (* rootObjectData ) (V , error ),
98102) (V , error ) {
99- if rootObject , readErr := ReadMetaRepoFile (metaDataFile ); readErr != nil {
100- return defaultValue , fmt .Errorf ("failed to read file %s; %w" , metaDataFile , readErr )
103+ if rootObject , readErr := ReadMetaRepoFile (dataFile ); readErr != nil {
104+ return defaultValue , fmt .Errorf ("failed to read file %s; %w" , dataFile , readErr )
101105 } else if result , queryErr := queryData (rootObject ); queryErr != nil {
102106 return defaultValue , fmt .Errorf ("failed to query data; %w" , queryErr )
103107 } else {
@@ -107,16 +111,16 @@ func queryFile[V any](
107111
108112type updateDataFn = func (* rootObjectData )
109113
110- func ( repo * JsonMetaRepo ) updateFile ( updateData updateDataFn ) error {
114+ func updateFile ( dataFile string , updateData updateDataFn ) error {
111115 var rootObject * rootObjectData
112- rootObject , readErr := ReadMetaRepoFile (repo . metaDataFile )
116+ rootObject , readErr := ReadMetaRepoFile (dataFile )
113117 if readErr != nil {
114- return fmt .Errorf ("failed to read file %s; %w" , repo . metaDataFile , readErr )
118+ return fmt .Errorf ("failed to read file %s; %w" , dataFile , readErr )
115119 }
116120
117121 updateData (rootObject )
118- if writeErr := rootObject .WriteTo (repo . metaDataFile ); writeErr != nil {
119- return fmt .Errorf ("failed to write file %s; %w" , repo . metaDataFile , writeErr )
122+ if writeErr := rootObject .WriteTo (dataFile ); writeErr != nil {
123+ return fmt .Errorf ("failed to write file %s; %w" , dataFile , writeErr )
120124 } else {
121125 return nil
122126 }
0 commit comments