package spindle
import (
"context"
"fmt"
"log/slog"
"tangled.org/core/spindle/db"
)
func cleanupOrphanRepos(ctx context.Context, d *db.DB, logger *slog.Logger) error {
res, err := d.ExecContext(ctx, `
delete from repos
where coalesce(repo_did, '') = ''
and exists (
select 1 from repos r2
where r2.owner = repos.owner
and coalesce(r2.repo_did, '') <> ''
)
`)
if err != nil {
return fmt.Errorf("delete orphan repos: %w", err)
}
n, _ := res.RowsAffected()
if n > 0 {
logger.Info("cleaned up orphan repos missing repo_did", "deleted", n)
}
return nil
}