appendix: 23 Code-Ausschnitte aus dem Houston-Repository

Pin nixpkgs to the revision used by itc.componentware: the channel version
ships a latexminted that crashes on Python 3.14, which made every listing
fail and sent latexmk into an endless error prompt. Also force
nonstopmode/halt-on-error so a broken listing can never loop again.
This commit is contained in:
2026-08-25 21:38:22 +02:00
parent cd3a3e5246
commit bff34658b8
26 changed files with 1101 additions and 20 deletions
@@ -0,0 +1,28 @@
private async IAsyncEnumerable<ListObjectsV2Response> EnumerateResponsesAsync(
Func<ListObjectsV2Request> requestBuilder,
[EnumeratorCancellation] CancellationToken cancellationToken)
{
string? continuationToken = null;
do
{
var request = requestBuilder();
request.ContinuationToken = continuationToken;
request.BucketName = _settings.S3.Bucket;
var response = await s3.ListObjectsV2Async(request, cancellationToken);
yield return response;
continuationToken = response.IsTruncated == true ? response.NextContinuationToken : null;
} while (continuationToken is not null);
}
private async IAsyncEnumerable<S3Object> EnumerateObjectsAsync(
Func<ListObjectsV2Request> requestBuilder,
[EnumeratorCancellation] CancellationToken cancellationToken)
{
await foreach (var response in EnumerateResponsesAsync(requestBuilder, cancellationToken))
{
foreach (var obj in response.S3Objects ?? [])
yield return obj;
}
}