mirror of
https://github.com/veggiemonk/awesome-docker.git
synced 2026-06-30 18:40:32 +02:00
aa0df11fba
* Structural reorg - part 1
Removals (~16 entries that failed the "for Docker" test):
- Container Composition: LLM Harbor
- Deployment: awesome-stacks
- Orchestration: Ansible Linux Docker, ManageIQ, RedHerd Framework
- Reverse Proxy: idle-less
- Service Discovery: etcd, istio (then section deleted)
- Volume: duplicacy-cli-cron
- Security: crowdsec-blocklist-import, dvwassl
- Dev Env: DockerDL, ESP32 Linux builder, Rust Universal Compiler
- Testing: InSpec
- Wrappers: Ansible
- Monitoring SaaS: Prometheus, Broadcom, Splunk-blog (when merging)
Structural moves:
- Service Discovery → folded into Networking (docker-consul, docker-dns, registrator kept; etcd/istio dropped)
- Metadata (1 entry, OCI spec) → deleted
- User Interface > Terminal > {Terminal UI, CLI tools, Other} → flattened to one Terminal subsection
- CI Services (under "Services based on Docker") → merged into CI/CD
- Monitoring Services → merged into Monitoring
- CaaS → merged into PaaS / CaaS
- Top-level Services based on Docker (mostly 💴) → deleted; pricing is signaled by 💴, not topology
- TOC updated to match
CONTRIBUTING.md tightening:
- Added a "for Docker" test framed as one yes/no question
- 12-row example table covering monitoring, reverse proxies, scanners, schedulers, tutorials, awesome-stacks-style submissions
- One-sentence sanity check ("This project exists to ____")
- New entry-description rule: descriptions must make the Docker connection obvious
* Tighten project submission criteria
* Manual review and clean up
* Add relevant project in 2026
* fix lint
* add relevant projects
* Add Cloud Run Compose, fix redirected URLs
- Add Cloud Run Compose under Deployment & Platforms (docker-compose deploys).
- Update GCP Artifact Registry URL to follow docs.cloud.google.com redirect.
- Update CodeFresh URL to its post-acquisition home at octopus.com/codefresh.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* remove dead projects
* exclude bot protected website
* clean up
* clean up more
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
75 lines
2.2 KiB
Markdown
75 lines
2.2 KiB
Markdown
#!/usr/bin/env python3
|
|
"""Normalize :yen: placement in README.md entries.
|
|
|
|
Transformations (only on list entries — leaves legend lines and section prose alone):
|
|
- [Title :yen:](url) - desc -> - [Title](url) - :yen: desc
|
|
- [Title](url) :yen:- desc -> - [Title](url) - :yen: desc
|
|
- [Title](url) :yen: desc -> - [Title](url) - :yen: desc
|
|
- [Title](url) :yen: -> - [Title](url) - :yen:
|
|
|
|
Idempotent: already-correct lines pass through untouched.
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
import re
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
# Entry where :yen: is inside the link title.
|
|
RE_IN_TITLE = re.compile(r'^(\s*[-*]\s+\[)([^\]]*?)\s+:yen:(\s*\]\([^)]+\))(\s*-?\s*)(.*)$')
|
|
|
|
# Entry where :yen: sits right after the URL, followed by "- desc", " desc", or nothing.
|
|
RE_AFTER_URL = re.compile(r'^(\s*[-*]\s+\[[^\]]+\]\([^)]+\))\s+:yen:\s*(-\s*)?(.*)$')
|
|
|
|
# Already-correct entries: "(url) - :yen: ..."
|
|
RE_ALREADY_OK = re.compile(r'\]\([^)]+\)\s+-\s+:yen:(\s|$)')
|
|
|
|
|
|
def transform(line: str) -> str:
|
|
if ':yen:' not in line:
|
|
return line
|
|
if RE_ALREADY_OK.search(line):
|
|
return line
|
|
|
|
m = RE_IN_TITLE.match(line)
|
|
if m:
|
|
prefix, title, link_close, _sep, desc = m.groups()
|
|
desc = desc.lstrip()
|
|
if desc:
|
|
return f"{prefix}{title.rstrip()}{link_close} - :yen: {desc}"
|
|
return f"{prefix}{title.rstrip()}{link_close} - :yen:"
|
|
|
|
m = RE_AFTER_URL.match(line)
|
|
if m:
|
|
head, _dash, desc = m.groups()
|
|
desc = desc.lstrip()
|
|
if desc:
|
|
return f"{head} - :yen: {desc}"
|
|
return f"{head} - :yen:"
|
|
|
|
return line
|
|
|
|
|
|
def main(path: str) -> int:
|
|
p = Path(path)
|
|
original = p.read_text()
|
|
out_lines = []
|
|
changed = 0
|
|
for line in original.splitlines():
|
|
new = transform(line)
|
|
if new != line:
|
|
changed += 1
|
|
out_lines.append(new)
|
|
# Preserve trailing newline.
|
|
new_text = "\n".join(out_lines)
|
|
if original.endswith("\n"):
|
|
new_text += "\n"
|
|
if new_text != original:
|
|
p.write_text(new_text)
|
|
print(f"{changed} line(s) changed in {path}")
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main(sys.argv[1] if len(sys.argv) > 1 else "README.md"))
|