mirror of
https://github.com/borgbackup/borg.git
synced 2025-03-12 07:08:47 +00:00
scripts/gendocs.py: make it work
remove unused html_write function gendocs: update developer docs
This commit is contained in:
parent
e2860318fa
commit
6e228e371b
2 changed files with 39 additions and 31 deletions
|
@ -220,8 +220,8 @@ for easier use by packagers downstream.
|
|||
When a command is added, a command line flag changed, added or removed,
|
||||
the usage docs need to be rebuilt as well::
|
||||
|
||||
python setup.py build_usage
|
||||
python setup.py build_man
|
||||
python scripts/gendocs.py build_usage
|
||||
python scripts/gendocs.py build_man
|
||||
|
||||
However, we prefer to do this as part of our :ref:`releasing`
|
||||
preparations, so it is generally not necessary to update these when
|
||||
|
@ -311,7 +311,11 @@ Checklist:
|
|||
- Check version number of upcoming release in ``CHANGES.rst``.
|
||||
- Render ``CHANGES.rst`` via ``make html`` and check for markup errors.
|
||||
- Verify that ``MANIFEST.in``, ``pyproject.toml`` and ``setup.py`` are complete.
|
||||
- ``python setup.py build_usage ; python setup.py build_man`` and commit.
|
||||
- Run these commands and commit::
|
||||
|
||||
python scripts/gendocs.py build_usage
|
||||
python scripts/gendocs.py build_man
|
||||
|
||||
- Tag the release::
|
||||
|
||||
git tag -s -m "tagged/signed release X.Y.Z" X.Y.Z
|
||||
|
|
|
@ -9,8 +9,6 @@ from collections import OrderedDict
|
|||
from datetime import datetime, timezone
|
||||
import time
|
||||
|
||||
from setuptools import Command
|
||||
|
||||
|
||||
def format_metavar(option):
|
||||
if option.nargs in ('*', '...'):
|
||||
|
@ -23,18 +21,8 @@ def format_metavar(option):
|
|||
raise ValueError(f'Can\'t format metavar {option.metavar}, unknown nargs {option.nargs}!')
|
||||
|
||||
|
||||
class build_usage(Command):
|
||||
description = "generate usage for each command"
|
||||
|
||||
user_options = [
|
||||
('output=', 'O', 'output directory'),
|
||||
]
|
||||
|
||||
def initialize_options(self):
|
||||
pass
|
||||
|
||||
def finalize_options(self):
|
||||
pass
|
||||
class BuildUsage:
|
||||
"""generate usage docs for each command"""
|
||||
|
||||
def run(self):
|
||||
print('generating usage docs')
|
||||
|
@ -50,6 +38,7 @@ class build_usage(Command):
|
|||
#borgfs_parser = Archiver(prog='borgfs').build_parser()
|
||||
|
||||
self.generate_level("", parser, Archiver)
|
||||
return 0
|
||||
|
||||
def generate_level(self, prefix, parser, Archiver, extra_choices=None):
|
||||
is_subcommand = False
|
||||
|
@ -119,10 +108,6 @@ class build_usage(Command):
|
|||
# HTML output:
|
||||
# A table using some column-spans
|
||||
|
||||
def html_write(s):
|
||||
for line in s.splitlines():
|
||||
fp.write(' ' + line + '\n')
|
||||
|
||||
rows = []
|
||||
for group in parser._action_groups:
|
||||
if group.title == 'Common options':
|
||||
|
@ -257,10 +242,8 @@ class build_usage(Command):
|
|||
fp.write(indent + option.ljust(padding) + desc + '\n')
|
||||
|
||||
|
||||
class build_man(Command):
|
||||
description = 'build man pages'
|
||||
|
||||
user_options = []
|
||||
class BuildMan:
|
||||
"""build man pages"""
|
||||
|
||||
see_also = {
|
||||
'create': ('delete', 'prune', 'check', 'patterns', 'placeholders', 'compression'),
|
||||
|
@ -301,12 +284,6 @@ class build_man(Command):
|
|||
'umount': 'mount',
|
||||
}
|
||||
|
||||
def initialize_options(self):
|
||||
pass
|
||||
|
||||
def finalize_options(self):
|
||||
pass
|
||||
|
||||
def run(self):
|
||||
print('building man pages (in docs/man)', file=sys.stderr)
|
||||
import borg
|
||||
|
@ -320,6 +297,7 @@ class build_man(Command):
|
|||
self.generate_level('', parser, Archiver, {'borgfs': borgfs_parser})
|
||||
self.build_topic_pages(Archiver)
|
||||
self.build_intro_page()
|
||||
return 0
|
||||
|
||||
def generate_level(self, prefix, parser, Archiver, extra_choices=None):
|
||||
is_subcommand = False
|
||||
|
@ -538,3 +516,29 @@ class build_man(Command):
|
|||
|
||||
for option, desc in opts.items():
|
||||
write(option.ljust(padding), desc)
|
||||
|
||||
|
||||
def usage():
|
||||
print(textwrap.dedent("""
|
||||
Usage:
|
||||
python scripts/gendocs.py build_usage # build usage documentation
|
||||
python scripts/gendocs.py build_man # build man pages
|
||||
"""))
|
||||
|
||||
|
||||
def main(argv):
|
||||
if len(argv) < 2 or len(argv) == 2 and argv[1] in ("-h", "--help"):
|
||||
usage()
|
||||
return 0
|
||||
command = argv[1]
|
||||
if command == "build_usage":
|
||||
return BuildUsage().run()
|
||||
if command == "build_man":
|
||||
return BuildMan().run()
|
||||
usage()
|
||||
return 1
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
rc = main(sys.argv)
|
||||
sys.exit(rc)
|
||||
|
|
Loading…
Add table
Reference in a new issue