From be3a30c55c83c80ae39bd46aa3f8a3d314efc765 Mon Sep 17 00:00:00 2001 From: rina Date: Sat, 14 Feb 2026 23:13:13 +1000 Subject: [PATCH 1/4] Add `make readme` to generate and update the readme's `--help` text --- Makefile | 4 ++++ scripts/update_readme.py | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100755 scripts/update_readme.py diff --git a/Makefile b/Makefile index 3c64f93354..96e9f0d4fd 100644 --- a/Makefile +++ b/Makefile @@ -72,3 +72,7 @@ screencast: ## Create a screencast for the docs verify: ## Verify the MSRV cargo msrv --path lychee-lib verify cargo msrv --path lychee-bin verify + +.PHONY: readme +readme: ## Updates README.md with `lychee --help` + scripts/update_readme.py diff --git a/scripts/update_readme.py b/scripts/update_readme.py new file mode 100755 index 0000000000..49bb8a09d6 --- /dev/null +++ b/scripts/update_readme.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 + +""" +Simply updates the `lychee --help` output in the README. +""" + +import subprocess + +def main(): + new_help = subprocess.check_output('cargo run -- --help'.split(), encoding='utf-8') + version = subprocess.check_output('cargo run -- --version'.split(), encoding='utf-8').split()[-1] + new_help = '\n'.join( + line.replace(f'lychee/{version}', 'lychee/x.y.z').rstrip() + for line in new_help.strip().split('\n') + ) + + begin = '\n```help-message\n' + end = '\n```\n' + + with open('README.md', 'r+') as f: + text = f.read() + before, after = text.split(begin, 1) + old_help, after = after.split(end, 1) + + if old_help.strip() == new_help.strip(): + print('readme already up to date, skipping.') + return + + f.seek(0) + + f.write(before) + f.write(begin) + f.write(new_help) + f.write(end) + f.write(after) + + f.truncate() + +if __name__ == "__main__": + main() From 063575f1130d5a12f58b0b70030687701cd5d646 Mon Sep 17 00:00:00 2001 From: rina Date: Sat, 14 Feb 2026 23:18:53 +1000 Subject: [PATCH 2/4] don't need skip check --- README.md | 2 +- scripts/update_readme.py | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 3b8610adb2..57135a3b13 100644 --- a/README.md +++ b/README.md @@ -701,7 +701,7 @@ Options: -u, --user-agent User agent - [default: lychee/0.20.1] + [default: lychee/x.y.z] -v, --verbose... Set verbosity level; more output per occurrence (e.g. `-v` or `-vv`) diff --git a/scripts/update_readme.py b/scripts/update_readme.py index 49bb8a09d6..41f8ab9f16 100755 --- a/scripts/update_readme.py +++ b/scripts/update_readme.py @@ -20,11 +20,7 @@ def main(): with open('README.md', 'r+') as f: text = f.read() before, after = text.split(begin, 1) - old_help, after = after.split(end, 1) - - if old_help.strip() == new_help.strip(): - print('readme already up to date, skipping.') - return + _, after = after.split(end, 1) f.seek(0) From 55ccae09c460e43f1240dc9af14c20f8aacc90e1 Mon Sep 17 00:00:00 2001 From: rina Date: Tue, 17 Feb 2026 18:16:26 +1000 Subject: [PATCH 3/4] review: break up for comprehension --- scripts/update_readme.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/update_readme.py b/scripts/update_readme.py index 41f8ab9f16..7808b55c9d 100755 --- a/scripts/update_readme.py +++ b/scripts/update_readme.py @@ -9,10 +9,10 @@ def main(): new_help = subprocess.check_output('cargo run -- --help'.split(), encoding='utf-8') version = subprocess.check_output('cargo run -- --version'.split(), encoding='utf-8').split()[-1] - new_help = '\n'.join( - line.replace(f'lychee/{version}', 'lychee/x.y.z').rstrip() - for line in new_help.strip().split('\n') - ) + + lines = new_help.strip().splitlines() + new_help = '\n'.join(line.rstrip() for line in lines) + new_help = new_help.replace(f'lychee/{version}', 'lychee/x.y.z') begin = '\n```help-message\n' end = '\n```\n' From ed626f0af141cd7a1d1e15c2f29f8a930fd94a71 Mon Sep 17 00:00:00 2001 From: rina Date: Tue, 17 Feb 2026 18:19:44 +1000 Subject: [PATCH 4/4] avoid weird things with r+ and truncate --- scripts/update_readme.py | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/scripts/update_readme.py b/scripts/update_readme.py index 7808b55c9d..d581216b7e 100755 --- a/scripts/update_readme.py +++ b/scripts/update_readme.py @@ -17,20 +17,14 @@ def main(): begin = '\n```help-message\n' end = '\n```\n' - with open('README.md', 'r+') as f: + with open('README.md', 'r') as f: text = f.read() - before, after = text.split(begin, 1) - _, after = after.split(end, 1) + before, rest = text.split(begin, 1) + _, after = rest.split(end, 1) - f.seek(0) - - f.write(before) - f.write(begin) - f.write(new_help) - f.write(end) - f.write(after) - - f.truncate() + with open('README.md', 'w') as f: + for part in [before, begin, new_help, end, after]: + f.write(part) if __name__ == "__main__": main()