func run()

in main.go [117:145]


func run(ctx context.Context, r *armresources.ResourceGroupsClient, ttl time.Duration, dryRun bool, regex string) error {
	log.Println("Scanning for stale resource groups")

	pager := r.NewListPager(nil)
	for pager.More() {
		nextResult, err := pager.NextPage(ctx)
		if err != nil {
			return fmt.Errorf("error when iterating resource groups: %v", err)
		}
		for _, rg := range nextResult.Value {
			rgName := *rg.Name
			if age, ok := shouldDeleteResourceGroup(rg, ttl, regex); ok {
				if dryRun {
					log.Printf("Dry-run: skip deletion of eligible resource group '%s' (age: %s)", rgName, age)
					continue
				}

				// Start the delete without waiting for it to complete.
				log.Printf("Beginning to delete resource group '%s' (age: %s)", rgName, age)
				_, err = r.BeginDelete(ctx, rgName, nil)
				if err != nil {
					log.Printf("Error when deleting %s: %v", rgName, err)
				}
			}
		}
	}

	return nil
}