archivebox_init.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/usr/bin/env python3
  2. __package__ = 'archivebox.cli'
  3. __command__ = 'archivebox init'
  4. import sys
  5. import argparse
  6. from typing import Optional, List, IO
  7. from archivebox.misc.util import docstring
  8. from archivebox.config import DATA_DIR
  9. from ..logging_util import SmartFormatter, reject_stdin
  10. from ..main import init
  11. @docstring(init.__doc__)
  12. def main(args: Optional[List[str]]=None, stdin: Optional[IO]=None, pwd: Optional[str]=None) -> None:
  13. parser = argparse.ArgumentParser(
  14. prog=__command__,
  15. description=init.__doc__,
  16. add_help=True,
  17. formatter_class=SmartFormatter,
  18. )
  19. parser.add_argument(
  20. '--force', # '-f',
  21. action='store_true',
  22. help='Ignore unrecognized files in current directory and initialize anyway',
  23. )
  24. parser.add_argument(
  25. '--quick', '-q',
  26. action='store_true',
  27. help='Run any updates or migrations without rechecking all snapshot dirs',
  28. )
  29. parser.add_argument(
  30. '--install', #'-s',
  31. action='store_true',
  32. help='Automatically install dependencies and extras used for archiving',
  33. )
  34. parser.add_argument(
  35. '--setup', #'-s',
  36. action='store_true',
  37. help='DEPRECATED: equivalent to --install',
  38. )
  39. command = parser.parse_args(args or ())
  40. reject_stdin(__command__, stdin)
  41. init(
  42. force=command.force,
  43. quick=command.quick,
  44. install=command.install or command.setup,
  45. out_dir=pwd or DATA_DIR,
  46. )
  47. if __name__ == '__main__':
  48. main(args=sys.argv[1:], stdin=sys.stdin)