diff --git a/poetry.lock b/poetry.lock index f7ba9c0..acd957d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -247,6 +247,14 @@ wcwidth = "*" checkqa-mypy = ["mypy (v0.761)"] testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] +[[package]] +category = "main" +description = "PyXDG contains implementations of freedesktop.org standards in python." +name = "pyxdg" +optional = false +python-versions = "*" +version = "0.26" + [[package]] category = "dev" description = "Alternative regular expression module, to replace re." @@ -296,7 +304,7 @@ python-versions = "*" version = "0.1.8" [metadata] -content-hash = "cfd25d1d42c5011134c700ba470269b7c0d6076e9cc444a69b4dcfefdb8ea2bd" +content-hash = "fd95a1de8c202bcfdd879a6d4ad47206212f3afad7e823ba527938a5dfcaeadc" python-versions = "^3.8" [metadata.files] @@ -403,6 +411,10 @@ pytest = [ {file = "pytest-5.3.5-py3-none-any.whl", hash = "sha256:ff615c761e25eb25df19edddc0b970302d2a9091fbce0e7213298d85fb61fef6"}, {file = "pytest-5.3.5.tar.gz", hash = "sha256:0d5fe9189a148acc3c3eb2ac8e1ac0742cb7618c084f3d228baaec0c254b318d"}, ] +pyxdg = [ + {file = "pyxdg-0.26-py2.py3-none-any.whl", hash = "sha256:1948ff8e2db02156c0cccd2529b43c0cff56ebaa71f5f021bbd755bc1419190e"}, + {file = "pyxdg-0.26.tar.gz", hash = "sha256:fe2928d3f532ed32b39c32a482b54136fe766d19936afc96c8f00645f9da1a06"}, +] regex = [ {file = "regex-2020.1.8-cp27-cp27m-win32.whl", hash = "sha256:4e8f02d3d72ca94efc8396f8036c0d3bcc812aefc28ec70f35bb888c74a25161"}, {file = "regex-2020.1.8-cp27-cp27m-win_amd64.whl", hash = "sha256:e6c02171d62ed6972ca8631f6f34fa3281d51db8b326ee397b9c83093a6b7242"}, diff --git a/pomme/dirs.py b/pomme/dirs.py new file mode 100644 index 0000000..4139fe8 --- /dev/null +++ b/pomme/dirs.py @@ -0,0 +1,20 @@ +from pathlib import Path +from xdg import BaseDirectory +import typing + + +class Dirs: + def __init__(self): + self.conf_dir = Path(BaseDirectory.xdg_config_home).joinpath("pomme") + self.hooks_dirs: typing.Dict[str, Path] = dict() + self.hooks_dirs["after"] = Path( + BaseDirectory.xdg_config_home + ).joinpath("pomme/hooks/after") + + if not self.conf_dir.is_dir(): + self.conf_dir.mkdir(parents=True) + print("Configuration directory created: {}".format(self.conf_dir)) + for name, path in self.hooks_dirs.items(): + if not path.is_dir(): + path.mkdir(parents=True) + print("Hooks directory created {}".format(path)) diff --git a/pomme/hooks.py b/pomme/hooks.py new file mode 100644 index 0000000..c8764b9 --- /dev/null +++ b/pomme/hooks.py @@ -0,0 +1,14 @@ +import os +from pomme.dirs import Dirs + + +class Hooks(): + def __init__(self): + self.dirs = Dirs() + + def after(self): + script_list = self.dirs.hooks_dirs["after"].iterdir() + + for script in script_list: + if script.is_file(): + os.system(script) diff --git a/pomme/pomme.py b/pomme/pomme.py index 019b3bf..1b7933b 100644 --- a/pomme/pomme.py +++ b/pomme/pomme.py @@ -8,6 +8,7 @@ import time from blessed import Terminal # type: ignore from pomme.timer import Timer +from pomme.hooks import Hooks file_path = os.path.dirname(__file__) config = toml.load(os.path.join(file_path, "config.toml")) @@ -51,11 +52,13 @@ def print_time(s) -> None: """ :param s: sheduler """ + hooks = Hooks() print(term.home + term.clear) if timer.running(): print(timer.remaining()) else: print("timer finished") + hooks.after() return s.enter(1, 1, print_time, (s,)) diff --git a/pyproject.toml b/pyproject.toml index 73946c3..8331ae1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,6 +10,7 @@ python = "^3.8" click = "^7.0" toml = "^0.10.0" blessed = "^1.5" +pyxdg = "^0.26" [tool.poetry.dev-dependencies] mypy = "^0.761"