diff --git a/cookiecutter.json b/cookiecutter.json index 10dda3a..198aada 100644 --- a/cookiecutter.json +++ b/cookiecutter.json @@ -15,5 +15,6 @@ "discipline": "none", "specialization": "none", "supervisor": "none", - "album_no": "none" + "album_no": "none", + "beeminder_support": "no" } diff --git a/hooks/post_gen_project.sh b/hooks/post_gen_project.sh index 735d7e2..b280885 100755 --- a/hooks/post_gen_project.sh +++ b/hooks/post_gen_project.sh @@ -135,6 +135,10 @@ if [ "{{ cookiecutter.extra_locale }}" = "pl_PL" -o "{{ cookiecutter.locale }}" cp -r _optional_files/_pl_files/* . fi +if [ "{{ cookiecutter.beeminder_support }}" = "yes" ]; then + cp -r _optional_files/_beeminder_support/* . +fi + rm -rf _latex-templates _optional_files if [ -e .git ]; then diff --git a/{{cookiecutter.paper_repo_name}}/.cookiecutter.yml b/{{cookiecutter.paper_repo_name}}/.cookiecutter.yml index 7d538e4..941032b 100644 --- a/{{cookiecutter.paper_repo_name}}/.cookiecutter.yml +++ b/{{cookiecutter.paper_repo_name}}/.cookiecutter.yml @@ -16,3 +16,4 @@ default_context: specialization: '{{ cookiecutter.specialization }}' supervisor: '{{ cookiecutter.supervisor }}' album_no: '{{ cookiecutter.album_no }}' + beeminder: '{{ cookiecuter.beeminder_support }}' diff --git a/{{cookiecutter.paper_repo_name}}/Makefile b/{{cookiecutter.paper_repo_name}}/Makefile index 304668f..933fe56 100644 --- a/{{cookiecutter.paper_repo_name}}/Makefile +++ b/{{cookiecutter.paper_repo_name}}/Makefile @@ -49,6 +49,11 @@ stats.txt: $(PAPER_ID).pdf helpers/stats.sh bash helpers/stats.sh $< > $@ cat $@ +{% if cookiecutter.beeminder_support == 'yes' %} +logbeeminder: helpers/logbeeminder.py stats.txt + python3 $< +{% endif %} + $(PAPER_ID).pdf: $(PAPER_ID).tex preamble.tex metadata.tex $(CONTENT_TEX_SOURCES) bibliography.bib $(SCOREFILES) $(EXTRA_PDFS) pdflatex $< bibtex $(PAPER_ID) diff --git a/{{cookiecutter.paper_repo_name}}/_optional_files/_beeminder_support/helpers/logbeeminder.py b/{{cookiecutter.paper_repo_name}}/_optional_files/_beeminder_support/helpers/logbeeminder.py new file mode 100755 index 0000000..313fb08 --- /dev/null +++ b/{{cookiecutter.paper_repo_name}}/_optional_files/_beeminder_support/helpers/logbeeminder.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 + +import time +from pyminder.pyminder import Pyminder +import os +import sys + + +if 'BEEMINDER_USER' not in os.environ: + print('BEEMINDER_USER not set', file=sys.stderr) + exit(1) + +if 'BEEMINDER_TOKEN' not in os.environ: + print('BEEMINDER_TOKEN not set', file=sys.stderr) + exit(1) + +beeminder_user = os.environ['BEEMINDER_USER'] +beeminder_token = os.environ['BEEMINDER_TOKEN'] + + +pyminder = Pyminder(user=beeminder_user, token=beeminder_token) + +goal = pyminder.get_goal('{{cookiecutter.paper_id}}') + +with open('stats.txt', 'r') as stats_fh: + next(stats_fh) + stats = next(stats_fh) + page_count, _, _ = stats.split('\t') + + print(f'reporting {page_count} pages', file=sys.stderr) + + now = time.time() + + goal.stage_datapoint(value=page_count, + time=now) + + goal.commit_datapoints()