diff --git a/archivebox/cli/archivebox.py b/archivebox/cli/archivebox.py index 803bd9a9..d1326721 100755 --- a/archivebox/cli/archivebox.py +++ b/archivebox/cli/archivebox.py @@ -5,10 +5,12 @@ __package__ = 'archivebox.cli' __command__ = 'archivebox' __description__ = 'ArchiveBox: The self-hosted internet archive.' +import os import sys import argparse from . import list_subcommands, run_subcommand +from ..legacy.config import OUTPUT_DIR def parse_args(args=None): @@ -78,8 +80,13 @@ def print_import_tutorial(): def main(args=None): subcommand, subcommand_args = parse_args(args) + existing_index = os.path.exists(os.path.join(OUTPUT_DIR, 'index.json')) + if subcommand is None: - print_import_tutorial() + if existing_index: + run_subcommand('help', subcommand_args) + else: + print_import_tutorial() raise SystemExit(0) run_subcommand(subcommand, subcommand_args) diff --git a/archivebox/cli/archivebox_add.py b/archivebox/cli/archivebox_add.py index 33f5e923..241c3f88 100644 --- a/archivebox/cli/archivebox_add.py +++ b/archivebox/cli/archivebox_add.py @@ -16,6 +16,8 @@ from ..legacy.main import update_archive_data def main(args=None, stdin=None): + check_data_folder() + args = sys.argv[1:] if args is None else args parser = argparse.ArgumentParser( @@ -55,7 +57,6 @@ def main(args=None, stdin=None): command = parser.parse_args(args) check_dependencies() - check_data_folder() ### Handle ingesting urls piped in through stdin # (.e.g if user does cat example_urls.txt | archivebox add) diff --git a/archivebox/cli/archivebox_info.py b/archivebox/cli/archivebox_info.py index 38d7eb48..bf04d89e 100644 --- a/archivebox/cli/archivebox_info.py +++ b/archivebox/cli/archivebox_info.py @@ -7,11 +7,14 @@ __description__ = 'Print out some info and statistics about the archive collecti import sys import argparse -from ..legacy.main import info +from ..legacy.config import check_data_folder from ..legacy.util import reject_stdin +from ..legacy.main import info def main(args=None): + check_data_folder() + args = sys.argv[1:] if args is None else args parser = argparse.ArgumentParser( diff --git a/archivebox/cli/archivebox_list.py b/archivebox/cli/archivebox_list.py index d421f8de..dd4b62f8 100644 --- a/archivebox/cli/archivebox_list.py +++ b/archivebox/cli/archivebox_list.py @@ -9,10 +9,13 @@ import argparse from ..legacy.util import reject_stdin, to_json, to_csv +from ..legacy.config import check_data_folder from ..legacy.main import list_archive_data def main(args=None): + check_data_folder() + args = sys.argv[1:] if args is None else args parser = argparse.ArgumentParser( diff --git a/archivebox/cli/archivebox_remove.py b/archivebox/cli/archivebox_remove.py index a413f8cb..4ddba354 100644 --- a/archivebox/cli/archivebox_remove.py +++ b/archivebox/cli/archivebox_remove.py @@ -8,11 +8,14 @@ import sys import argparse -from ..legacy.main import remove_archive_links +from ..legacy.config import check_data_folder from ..legacy.util import reject_stdin +from ..legacy.main import remove_archive_links def main(args=None): + check_data_folder() + args = sys.argv[1:] if args is None else args parser = argparse.ArgumentParser( diff --git a/archivebox/cli/archivebox_schedule.py b/archivebox/cli/archivebox_schedule.py index 09c5a920..f6e685f8 100644 --- a/archivebox/cli/archivebox_schedule.py +++ b/archivebox/cli/archivebox_schedule.py @@ -20,6 +20,7 @@ from ..legacy.config import ( USER, ANSI, stderr, + check_data_folder, ) @@ -27,6 +28,8 @@ CRON_COMMENT = 'archivebox_schedule' def main(args=None): + check_data_folder() + args = sys.argv[1:] if args is None else args parser = argparse.ArgumentParser( diff --git a/archivebox/cli/archivebox_server.py b/archivebox/cli/archivebox_server.py index 1e1140ef..2955812a 100644 --- a/archivebox/cli/archivebox_server.py +++ b/archivebox/cli/archivebox_server.py @@ -7,11 +7,13 @@ __description__ = 'Run the ArchiveBox HTTP server' import sys import argparse -from ..legacy.config import setup_django, OUTPUT_DIR +from ..legacy.config import setup_django, OUTPUT_DIR, ANSI, check_data_folder from ..legacy.util import reject_stdin def main(args=None): + check_data_folder() + args = sys.argv[1:] if args is None else args parser = argparse.ArgumentParser( @@ -26,11 +28,22 @@ def main(args=None): default=None, help='Arguments to pass to Django runserver' ) + parser.add_argument( + '--reload', + action='store_true', + help='Enable auto-reloading when code or templates change', + ) command = parser.parse_args(args) reject_stdin(__command__) setup_django(OUTPUT_DIR) from django.core.management import call_command + + + print('{green}[+] Starting ArchiveBox webserver...{reset}'.format(**ANSI)) + if not command.reload: + command.runserver_args.append('--noreload') + call_command("runserver", *command.runserver_args) diff --git a/archivebox/cli/archivebox_shell.py b/archivebox/cli/archivebox_shell.py index 3500edf2..dd509e3f 100644 --- a/archivebox/cli/archivebox_shell.py +++ b/archivebox/cli/archivebox_shell.py @@ -7,11 +7,13 @@ __description__ = 'Enter an interactive ArchiveBox Django shell' import sys import argparse -from ..legacy.config import setup_django, OUTPUT_DIR +from ..legacy.config import setup_django, OUTPUT_DIR, check_data_folder from ..legacy.util import reject_stdin def main(args=None): + check_data_folder() + args = sys.argv[1:] if args is None else args parser = argparse.ArgumentParser( diff --git a/archivebox/cli/archivebox_update.py b/archivebox/cli/archivebox_update.py index c74fc8b7..e80fdce5 100644 --- a/archivebox/cli/archivebox_update.py +++ b/archivebox/cli/archivebox_update.py @@ -8,11 +8,14 @@ import sys import argparse +from ..legacy.config import check_data_folder from ..legacy.util import reject_stdin from ..legacy.main import update_archive_data def main(args=None): + check_data_folder() + args = sys.argv[1:] if args is None else args parser = argparse.ArgumentParser(