From 1601d8a300910178eca2069e7573e68a7516cfaa Mon Sep 17 00:00:00 2001 From: bvn13 Date: Tue, 8 Oct 2024 00:18:36 +0300 Subject: [PATCH] initial --- .gitignore | 3 +++ app/__init__.py | 0 app/logger.py | 5 +++++ main.py | 38 ++++++++++++++++++++++++++++++++++++++ pyproject.toml | 15 +++++++++++++++ 5 files changed, 61 insertions(+) create mode 100644 .gitignore create mode 100644 app/__init__.py create mode 100644 app/logger.py create mode 100644 main.py create mode 100644 pyproject.toml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a7a847c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.idea +.idea/** +poetry.lock \ No newline at end of file diff --git a/app/__init__.py b/app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/logger.py b/app/logger.py new file mode 100644 index 0000000..9ae5088 --- /dev/null +++ b/app/logger.py @@ -0,0 +1,5 @@ +import logging + +logging.basicConfig(format="%(asctime)s | %(name)s | %(levelname)s | %(message)s") +logger = logging.getLogger(__package__) +logger.setLevel(logging.INFO) diff --git a/main.py b/main.py new file mode 100644 index 0000000..3d10fd7 --- /dev/null +++ b/main.py @@ -0,0 +1,38 @@ +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) \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..770639a --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,15 @@ +[tool.poetry] +name = "git-pusher" +version = "0.1.0" +description = "" +authors = ["bvn13 "] +readme = "README.md" + +[tool.poetry.dependencies] +python = "^3.12" +scheduler = "^0.8.7" + + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api"