func()

in experimental/repository.go [122:175]


func (r *repositoryData) mark(blobs blobsData) error {
	for name, t := range r.tags {
		err := t.mark(blobs)
		if err != nil {
			if *softErrors {
				logrus.Errorln("MARK:", r.name, "TAG:", name, "ERROR:", err)
				continue
			}
			return err
		}
	}

	for revision, used := range r.manifests {
		if used == 0 {
			continue
		}

		err := r.markManifestLayers(blobs, revision)
		if err != nil {
			if *softErrors {
				logrus.Errorln("MARK:", r.name, "MANIFEST:", revision, "ERROR:", err)
				continue
			}
			return err
		}
	}

	for revision, signatures := range r.manifestSignatures {
		err := r.markManifestSignatures(blobs, revision, signatures)
		if err != nil {
			if *softErrors {
				logrus.Errorln("MARK:", r.name, "MANIFEST SIGNATURE:", revision, "ERROR:", err)
				continue
			}
			return err
		}
	}

	for digest, used := range r.layers {
		if used == 0 {
			continue
		}

		err := r.markLayer(blobs, digest)
		if err != nil {
			if *softErrors {
				logrus.Errorln("MARK:", r.name, "LAYER:", digest, "ERROR:", err)
				continue
			}
			return err
		}
	}
	return nil
}