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
}