Skip to content

Commit 9f2cbd7

Browse files
committed
Initial
1 parent 6de672c commit 9f2cbd7

File tree

1 file changed

+45
-10
lines changed

1 file changed

+45
-10
lines changed

salt_bundle/release.py

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -543,16 +543,51 @@ def release_formulas(
543543
if released and not dry_run:
544544
try:
545545
print("\nUpdating repository index...")
546-
index = generate_index(repo_dir)
547-
548-
# Update URLs with GitHub asset URLs (required for index_branch mode)
549-
if asset_urls:
550-
for (name, version), asset_url in asset_urls.items():
551-
if name in index.packages:
552-
for entry in index.packages[name]:
553-
if entry.version == version:
554-
entry.url = asset_url
555-
break
546+
547+
# Start with existing index or create new one
548+
if repo_index:
549+
index = repo_index
550+
else:
551+
index = Index(generated=datetime.now(), packages={})
552+
553+
# Add new releases to index
554+
for formula in released:
555+
archive_name = f"{formula.name}-{formula.version}.tgz"
556+
archive_path = repo_dir / archive_name
557+
558+
if archive_path.exists():
559+
from .package import get_package_info
560+
from .utils.hashing import calculate_sha256
561+
562+
meta = get_package_info(archive_path)
563+
digest = calculate_sha256(archive_path)
564+
565+
# Get URL from asset_urls or use filename
566+
url = asset_urls.get((formula.name, formula.version), archive_name)
567+
568+
# Create index entry
569+
entry = IndexEntry(
570+
version=meta.version,
571+
url=url,
572+
digest=digest,
573+
created=datetime.now()
574+
)
575+
576+
# Add to index
577+
if meta.name not in index.packages:
578+
index.packages[meta.name] = []
579+
580+
# Check if version already exists (shouldn't happen, but just in case)
581+
existing_versions = [e.version for e in index.packages[meta.name]]
582+
if meta.version not in existing_versions:
583+
index.packages[meta.name].append(entry)
584+
585+
# Sort versions (latest first)
586+
for name in index.packages:
587+
index.packages[name].sort(key=lambda e: e.version, reverse=True)
588+
589+
# Update generation timestamp
590+
index.generated = datetime.now()
556591

557592
save_index(index, repo_dir)
558593
print(f"Index updated: {len(index.packages)} packages total")

0 commit comments

Comments
 (0)