"""Run from cPanel Cron Jobs, outside the web request lifecycle."""
import argparse
import sys

import catalog
import ingestion

parser = argparse.ArgumentParser()
parser.add_argument('--kind', choices=('all', 'car', 'bike', 'blog'), default='all')
parser.add_argument('--mode', choices=('full', 'missing'), default='missing')
args = parser.parse_args()

catalog.init()
run_id = catalog.start_run(args.kind, args.mode)
if run_id is None:
    print('A sync is already active; exiting.')
    sys.exit(0)
report = ingestion.run_sync(args.kind, args.mode, run_id)
print(report)
sys.exit(1 if report.get('errors') and not (report.get('models') or report.get('details')) else 0)
