From 9b3a59a7e4eaafeed4685a0a81aae79d7fbac4a1 Mon Sep 17 00:00:00 2001 From: Romain Porte Date: Sat, 2 Sep 2017 21:33:33 +0200 Subject: Initial commit --- __init__.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 __init__.py diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..b4e5a4a --- /dev/null +++ b/__init__.py @@ -0,0 +1,35 @@ +import subprocess + +from pelican import signals + + +class GitDescribe: + def __init__(self, gen): + self.settings = gen.settings + self.process() + + def process(self): + """Initialization process.""" + pass + + def defer_process(self): + """Check and return git describe value.""" + result = subprocess.run(["git", "describe"], stdout=subprocess.PIPE, + check=True) + return result.stdout.decode('utf-8') + + +def initialize(gen): + """Function called upon article generator initialization.""" + gen.plugin_instance = GitDescribe(gen) + + +def fetch(gen, metadata): + """Function called upon article generation context fetching.""" + gen.context['git_describe'] = gen.plugin_instance.defer_process() + + +def register(): + """Register Pelican signals to dedicated functions.""" + signals.article_generator_init.connect(initialize) + signals.article_generator_context.connect(fetch) -- cgit v1.2.3