#!/usr/bin/env python3

__package__ = 'archivebox.cli'
__command__ = 'archivebox help'
__description__ = 'Print the ArchiveBox help message and usage'

import sys
import argparse

from ..legacy.util import reject_stdin
from ..legacy.config import ANSI
from . import list_subcommands


def main(args=None):
    args = sys.argv[1:] if args is None else args

    parser = argparse.ArgumentParser(
        prog=__command__,
        description=__description__,
        add_help=True,
    )
    parser.parse_args(args)
    reject_stdin(__command__)
    

    COMMANDS_HELP_TEXT = '\n    '.join(
        f'{cmd.ljust(20)} {summary}'
        for cmd, summary in list_subcommands().items()
    )

    print('''{green}ArchiveBox: The self-hosted internet archive.{reset}
        
{lightblue}Usage:{reset}
    archivebox [command] [--help] [--version] [...args]

{lightblue}Comamnds:{reset}
    {}

{lightblue}Example Use:{reset}
    mkdir my-archive; cd my-archive/
    archivebox init
    archivebox info

    archivebox add https://example.com/some/page
    archivebox add --depth=1 ~/Downloads/bookmarks_export.html
    
    archivebox list --sort=timestamp --csv=timestamp,url,is_archived
    archivebox schedule --every=week https://example.com/some/feed.rss
    archivebox update --resume=15109948213.123

{lightblue}Documentation:{reset}
    https://github.com/pirate/ArchiveBox/wiki
'''.format(COMMANDS_HELP_TEXT, **ANSI))


if __name__ == '__main__':
    main()