mirror of
https://github.com/ArchiveBox/ArchiveBox
synced 2024-11-22 12:13:05 +00:00
58 lines
1.6 KiB
Python
58 lines
1.6 KiB
Python
#!/usr/bin/env python3
|
|
|
|
__package__ = 'archivebox.cli'
|
|
__command__ = 'archivebox server'
|
|
__description__ = 'Run the ArchiveBox HTTP server'
|
|
|
|
import sys
|
|
import argparse
|
|
|
|
from ..legacy.config import setup_django, IS_TTY, 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(
|
|
prog=__command__,
|
|
description=__description__,
|
|
add_help=True,
|
|
)
|
|
parser.add_argument(
|
|
'runserver_args',
|
|
nargs='*',
|
|
type=str,
|
|
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
|
|
from django.contrib.auth.models import User
|
|
|
|
if IS_TTY and not User.objects.filter(is_superuser=True).exists():
|
|
print('{lightyellow}[!] No admin users exist yet, you will not be able to edit links in the UI.{reset}'.format(**ANSI))
|
|
print()
|
|
print(' To create an admin user, run:')
|
|
print(' archivebox manage createsuperuser')
|
|
print()
|
|
|
|
print('{green}[+] Starting ArchiveBox webserver...{reset}'.format(**ANSI))
|
|
if not command.reload:
|
|
command.runserver_args.append('--noreload')
|
|
|
|
call_command("runserver", *command.runserver_args)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|