Skip to content

Commit 4ae520a

Browse files
committed
Runner: Add Daemon mode
Closes #3
1 parent 5f689a1 commit 4ae520a

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

formatchecker/runner.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"""
1515
import logging
1616
import sys
17+
import time
1718
from datetime import date, timedelta
1819

1920
from .core import reformat_change
@@ -47,6 +48,18 @@ def format_changes(after: date, submit: bool = False):
4748
reformat_change(context, change["id"], change["current_revision"], submit)
4849

4950

51+
def daemon_mode(timeout: int, after: date, submit: bool = False):
52+
logger = logging.getLogger("daemon")
53+
logger.info("Starting daemon with timeout set to %i seconds" % timeout)
54+
if not submit:
55+
logger.warning("Running in dry-run mode (submit is set to false)")
56+
while True:
57+
logger.info("Starting daemon run")
58+
format_changes(after, submit)
59+
logger.info("Daemon run finished. Sleeping for %i seconds" % timeout)
60+
time.sleep(timeout)
61+
62+
5063
if __name__ == "__main__":
5164
import argparse
5265

@@ -55,8 +68,14 @@ def format_changes(after: date, submit: bool = False):
5568
description="Automates running `haiku-format` on changes on Haiku's Gerrit instance")
5669
parser.add_argument("--days", type=int, default=3,
5770
help="Number of days in the past to select changes for reformatting")
71+
parser.add_argument("--timeout", type=int, default=300,
72+
help="Time in seconds to wait between runs when in daemon mode")
73+
parser.add_argument('--daemon', action="store_true", help="submit")
5874
parser.add_argument('--submit', action="store_true", help="submit the reviews to gerrit")
5975
args = parser.parse_args()
6076
logging.basicConfig(stream=sys.stdout, level=logging.INFO)
6177
start_date = date.today() - timedelta(days=args.days)
62-
format_changes(start_date, args.submit)
78+
if args.daemon:
79+
daemon_mode(args.timeout, start_date, args.submit)
80+
else:
81+
format_changes(start_date, args.submit)

0 commit comments

Comments
 (0)