From dece26c35ef5251ae1293e785eca5a9c9afde679 Mon Sep 17 00:00:00 2001 From: Justin Mayer Date: Tue, 2 Jul 2024 16:50:34 +0200 Subject: [PATCH] Add Cruft and link to latest Cookiecutter commit --- .cruft.json | 27 +++++++++++++++++++++++++++ tasks.py | 14 +++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 .cruft.json diff --git a/.cruft.json b/.cruft.json new file mode 100644 index 0000000..c19f229 --- /dev/null +++ b/.cruft.json @@ -0,0 +1,27 @@ +{ + "template": "https://github.com/getpelican/cookiecutter-pelican-plugin", + "commit": "f9a088515d09675d433595982ae643c3fe323c50", + "checkout": null, + "context": { + "cookiecutter": { + "plugin_name": "Webring", + "repo_name": "webring", + "package_name": "webring", + "distribution_name": "pelican-webring", + "version": "1.4.0", + "description": "Webring is a Pelican plugin that adds external article summaries to your site from a list of web feeds", + "authors": "{name = \"David Alfonso\", email = \"developer@davidalfonso.es\"}, {name = \"Justin Mayer\", email = \"entroP@gmail.com\"}", + "keywords": "\"pelican\", \"plugin\"", + "readme": "README.md", + "contributing": "CONTRIBUTING.md", + "license": "GNU Affero General Public License v3|AGPL-3.0", + "repo_url": "https://github.com/pelican-plugins/webring", + "dev_status": "5 - Production/Stable", + "tests_exist": true, + "python_version": ">=3.8.1,<4.0", + "pelican_version": ">=4.5", + "_template": "https://github.com/getpelican/cookiecutter-pelican-plugin" + } + }, + "directory": null +} diff --git a/tasks.py b/tasks.py index 70dc4e5..a507e5e 100644 --- a/tasks.py +++ b/tasks.py @@ -18,9 +18,10 @@ BIN_DIR = "bin" if os.name != "nt" else "Scripts" VENV_BIN = Path(VENV) / Path(BIN_DIR) -TOOLS = ("pdm", "pre-commit") +TOOLS = ("cruft", "pdm", "pre-commit") PDM = which("pdm") if which("pdm") else (VENV_BIN / "pdm") CMD_PREFIX = f"{VENV_BIN}/" if ACTIVE_VENV else f"{PDM} run " +CRUFT = which("cruft") if which("cruft") else f"{CMD_PREFIX}cruft" PRECOMMIT = which("pre-commit") if which("pre-commit") else f"{CMD_PREFIX}pre-commit" PTY = os.name != "nt" @@ -79,6 +80,17 @@ def precommit(c): c.run(f"{PRECOMMIT} install") +@task +def update(c, check=False): + """Apply upstream plugin template changes to this project.""" + if check: + logger.info("** Checking for upstream template changes **") + c.run(f"{CRUFT} check", pty=PTY) + else: + logger.info("** Updating project from upstream template **") + c.run(f"{CRUFT} update", pty=PTY) + + @task def setup(c): """Set up the development environment."""