266
267
// readManifest reads the json manifest at dirPath into a manifest struct.
268
>
func readManifest(fsys fs.FS, dirPath string) (*manifest, error) {
updatetask.go
269
>
manifestPath := path.Join(dirPath, manifestFileName)
270
>
271
>
jsonBlob, err := fs.ReadFile(fsys, manifestPath)
272
>
if err != nil {
273
return nil, err
274
}
275
277
>
err = json.Unmarshal(jsonBlob, &manifest)
278
>
if err != nil {
279
return nil, err
280
}
281
282
>
currVer, err := normalizeVersionString(manifest.CurrVersion)
updatetask.go
283
>
if err != nil {
284
return nil, fmt.Errorf("invalid CurrVersion in manifest")
285
}
287
>
288
>
minVer, err := normalizeVersionString(manifest.MinCompatibleVersion)
289
>
if err != nil {
290
return nil, err
291
}
293
return nil, fmt.Errorf("invalid MinCompatibleVersion in manifest")
294
}
296
>
297
>
if len(manifest.SchemaUpdateCqlFiles) == 0 && !manifest.AllowNoCqlFiles {
298
return nil, fmt.Errorf("manifest missing SchemaUpdateCqlFiles")
299
}