38 lines
969 B
Python
38 lines
969 B
Python
import argparse
|
|
from app.logger import logger as l
|
|
import datetime as dt
|
|
import subprocess as proc
|
|
from scheduler import Scheduler
|
|
import time
|
|
|
|
delta = dt.timedelta(hours=3)
|
|
tz_msk = dt.timezone(offset=delta, name="MSK")
|
|
|
|
logger = l.getChild(__name__)
|
|
logger.warning("Starting")
|
|
|
|
parser = argparse.ArgumentParser(__name__)
|
|
parser.add_argument("d", help="Directory to watch")
|
|
args = parser.parse_args()
|
|
|
|
directory = args.d
|
|
|
|
logger.info(f"Directory to watch: {directory}")
|
|
|
|
|
|
def c(command: str) -> list[str]:
|
|
return command.split(" ")
|
|
|
|
def _watcher() -> None:
|
|
g_status = proc.check_output(c("git status -s"))
|
|
if g_status is not None:
|
|
proc.run(c("git add ."))
|
|
now = time.ctime()
|
|
proc.run(c(f"git commit -m '{now}'"))
|
|
proc.run(c("git fetch"))
|
|
proc.run(c("git rebase"))
|
|
|
|
|
|
schedule = Scheduler(tzinfo=tz_msk)
|
|
schedule.minutely()
|
|
schedule.daily(dt.time(hour=7, minute=5, tzinfo=tz_msk), _watcher) |