34 lines
905 B
Python
34 lines
905 B
Python
#!/usr/bin/env python3
|
|
|
|
__package__ = 'archivebox.cli'
|
|
__command__ = 'archivebox worker'
|
|
|
|
import sys
|
|
import json
|
|
|
|
import rich_click as click
|
|
|
|
|
|
@click.command()
|
|
@click.argument('worker_type')
|
|
@click.option('--wait-for-first-event', is_flag=True)
|
|
@click.option('--exit-on-idle', is_flag=True)
|
|
def main(worker_type: str, wait_for_first_event: bool, exit_on_idle: bool):
|
|
"""Start an ArchiveBox worker process of the given type"""
|
|
|
|
from workers.worker import get_worker_type
|
|
|
|
# allow piping in events to process from stdin
|
|
# if not sys.stdin.isatty():
|
|
# for line in sys.stdin.readlines():
|
|
# Event.dispatch(event=json.loads(line), parent=None)
|
|
|
|
# run the actor
|
|
Worker = get_worker_type(worker_type)
|
|
for event in Worker.run(wait_for_first_event=wait_for_first_event, exit_on_idle=exit_on_idle):
|
|
print(event)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|