func()

in experimental/repository.go [177:231]


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

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

		err := deleteFile(r.manifestRevisionPath(revision), digestReferenceSize)
		if err != nil {
			if *softErrors {
				logrus.Errorln("SWEEP:", r.name, "MANIFEST:", revision, "ERROR:", err)
				continue
			}
			return err
		}
	}

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

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

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

	return nil
}