in experimental/main.go [47:137]
func Main() {
flag.Parse()
if *debug {
logrus.SetLevel(logrus.DebugLevel)
} else if *verbose {
logrus.SetLevel(logrus.InfoLevel)
} else {
logrus.SetLevel(logrus.WarnLevel)
}
logrus.SetFormatter(&logrus.TextFormatter{ForceColors: true})
if *config == "" {
flag.Usage()
os.Exit(1)
}
var err error
currentStorage, err = storageFromConfig(*config)
if err != nil {
logrus.Fatalln(err)
}
blobs := make(blobsData)
repositories := make(repositoriesData)
jobsRunner.run(*jobs)
parallelWalkRunner.run(*parallelWalkJobs)
signals := make(chan os.Signal)
signal.Notify(signals, os.Interrupt, os.Kill)
go func() {
for signal := range signals {
currentStorage.Info()
logrus.Fatalln("Signal received:", signal)
}
}()
var wg sync.WaitGroup
wg.Add(2)
go func() {
defer wg.Done()
err := repositories.walk(*parallelRepositoryWalk)
if err != nil {
logErrorln(err)
}
}()
go func() {
defer wg.Done()
if *ignoreBlobs {
return
}
err := blobs.walk(*parallelBlobWalk)
if err != nil {
logErrorln(err)
}
}()
wg.Wait()
logrus.Infoln("Marking REPOSITORIES...")
err = repositories.mark(blobs)
if err != nil {
logErrorln(err)
}
logrus.Infoln("Sweeping REPOSITORIES...")
err = repositories.sweep()
if err != nil {
logErrorln(err)
}
logrus.Infoln("Sweeping BLOBS...")
err = blobs.sweep()
if err != nil {
logErrorln(err)
}
logrus.Infoln("Summary...")
repositories.info(blobs, *repositoryCsvOutput)
blobs.info()
deletesInfo()
currentStorage.Info()
}