package main import ( "flag" log "github.com/sirupsen/logrus" "github.com/trustwallet/assets/internal/config" "github.com/trustwallet/assets/internal/file" "github.com/trustwallet/assets/internal/processor" "github.com/trustwallet/assets/internal/report" "github.com/trustwallet/assets/internal/service" ) var ( configPath, root, script string ) func main() { setup() paths, err := file.ReadLocalFileStructure(root, config.Default.ValidatorsSettings.RootFolder.SkipFiles) if err != nil { log.WithError(err).Fatal("Failed to load file structure.") } fileService := file.NewService(paths...) validatorsService := processor.NewService(fileService) reportService := report.NewService() assetfsProcessor := service.NewService(fileService, validatorsService, reportService) switch script { case "checker": assetfsProcessor.RunJob(paths, assetfsProcessor.Check) case "fixer": assetfsProcessor.RunJob(paths, assetfsProcessor.Fix) case "updater-auto": assetfsProcessor.RunUpdateAuto() case "updater-manual": assetfsProcessor.RunUpdateManual() default: log.Info("Nothing to launch. Use --script flag to choose a script to run.") } reportMsg := reportService.GetReport() if reportService.IsFailed() { log.Fatal(reportMsg) } else { log.Info(reportMsg) } } func setup() { flag.StringVar(&configPath, "config", "./.github/assets.config.yaml", "path to config file") flag.StringVar(&root, "root", "./", "path to the root of the dir") flag.StringVar(&script, "script", "", "script type to run") flag.Parse() if err := config.SetConfig(configPath); err != nil { log.WithError(err).Fatal("Failed to set config.") } logLevel, err := log.ParseLevel(config.Default.App.LogLevel) if err != nil { log.WithError(err).Fatal("Failed to parse log level.") } log.SetLevel(logLevel) }