archivebox_manage.py 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. #!/usr/bin/env python3
  2. __package__ = 'archivebox.cli'
  3. import rich_click as click
  4. from archivebox.misc.util import docstring, enforce_types
  5. @enforce_types
  6. def manage(args: list[str] | None=None) -> None:
  7. """Run an ArchiveBox Django management command"""
  8. from archivebox.config.common import SHELL_CONFIG
  9. from archivebox.misc.logging import stderr
  10. if (args and "createsuperuser" in args) and (SHELL_CONFIG.IN_DOCKER and not SHELL_CONFIG.IS_TTY):
  11. stderr('[!] Warning: you need to pass -it to use interactive commands in docker', color='lightyellow')
  12. stderr(' docker run -it archivebox manage {}'.format(' '.join(args or ['...'])), color='lightyellow')
  13. stderr('')
  14. from django.core.management import execute_from_command_line
  15. execute_from_command_line(['manage.py', *(args or ['help'])])
  16. @click.command(add_help_option=False, context_settings=dict(ignore_unknown_options=True))
  17. @click.argument('args', nargs=-1)
  18. @docstring(manage.__doc__)
  19. def main(args: list[str] | None=None) -> None:
  20. manage(args=args)
  21. if __name__ == '__main__':
  22. main()