| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!/usr/bin/env python3
- __package__ = 'archivebox.cli'
- __command__ = 'archivebox shell'
- import sys
- import argparse
- from pathlib import Path
- from typing import Optional, List, IO
- from archivebox.misc.util import docstring
- from archivebox.config import DATA_DIR
- from archivebox.misc.logging_util import SmartFormatter, reject_stdin
- #@enforce_types
- def shell(out_dir: Path=DATA_DIR) -> None:
- """Enter an interactive ArchiveBox Django shell"""
- check_data_folder()
- from django.core.management import call_command
- call_command("shell_plus")
- @docstring(shell.__doc__)
- def main(args: Optional[List[str]]=None, stdin: Optional[IO]=None, pwd: Optional[str]=None) -> None:
- parser = argparse.ArgumentParser(
- prog=__command__,
- description=shell.__doc__,
- add_help=True,
- formatter_class=SmartFormatter,
- )
- parser.parse_args(args or ())
- reject_stdin(__command__, stdin)
-
- shell(
- out_dir=Path(pwd) if pwd else DATA_DIR,
- )
-
- if __name__ == '__main__':
- main(args=sys.argv[1:], stdin=sys.stdin)
|